ST template WORD

Similar documents
ST template WORD

STM32Cube_FW_F4?RTC??????BUG

STM32F3??ADC??????????ADC

ST template WORD

标题

一、

LwIP TCP/IP STM32Cube

untitled

证券期货市场之主要诚信规范

计算机网络实验说明

EK-STM32F

Symantec™ Sygate Enterprise Protection 防护代理安装使用指南

C语言的应用.PDF

D-link用户手册.doc

Chapter #

<4D F736F F D20C9CFBAA3CAD0BCC6CBE3BBFAB5C8BCB6BFBCCAD4C8FDBCB6BFBCCAD4B4F3B8D95FBDA8D2E9B8E55F5F E646F63>

商 业 城 大 华 标 准 70 万 70 万 驰 宏 锌 锗 瑞 华 标 准 140 万 150 万 亚 星 锚 链 江 苏 公 证 天 业 标 准 80 万 80

金 陵 饭 店 中 兴 华 已 报 备 按 照 国 资 委 要 求 定 期 轮 换 天 衡 已 报 备 按 照 国 资 委 要 求 定 期 轮 换 *ST 中 富 中 喜 已 报 备 业 务 约 定 书 到 期 普

股票代码: 股票简称:*ST新梅 编号:临

昆 明 机 床 瑞 华 已 报 备 前 任 服 务 年 限 较 长 毕 马 威 华 振 已 报 备 未 与 客 户 未 就 2015 年 审 计 收 费 达 成 一 致 意 见 中 国 核 电 天 健 已 报 备 定

光 一 科 技 重 大 事 项, 特 停 茂 业 商 业 重 要 事 项 未 公 告, 连 续 停 牌 浙 富 控 股 重 大 事 项, 特 停 键 桥 通 讯 重 大 事 项, 特 停 黑 牛 食 品 重 大 事 项, 特 停

金 圆 股 份 重 大 事 项, 特 停 长 城 影 视 临 时 停 牌 天 兴 仪 表 临 时 停 牌 商 赢 环 球 重 要 事 项 未 公 告, 连 续 停 牌 荣 安 地 产 临 时 停 牌 中 南 文 化

Untitled Document

欢迎辞

辉 丰 股 份 重 大 事 项, 特 停 南 方 轴 承 临 时 停 牌 德 力 股 份 临 时 停 牌 瑞 丰 光 电 临 时 停 牌 联 建 光 电 临 时 停 牌 卡 奴 迪 路 临 时 停 牌

日 涨 幅 偏 离 值 达 到 7% 的 前 五 只 证 券 : 温 氏 股 份 ( 代 码 ) 涨 幅 偏 离 值 :11.68% 成 交 量 :1752 万 股 成 交 金 额 : 万 元 机 构 专 用 机 构 专 用

上市公司股东大会投票信息公告( )

东 华 能 源 江 苏 苏 亚 金 诚 已 报 备 因 地 域 及 审 计 时 间 安 排 等 原 因 中 兴 华 已 报 备 客 户 重 新 选 聘 会 计 师 事 务 所 亿 帆 鑫 富 立 信 已 报 备 客

金 利 科 技 临 时 停 牌 凤 凰 光 学 重 要 事 项 未 公 告, 连 续 停 牌 安 源 煤 业 重 要 事 项 未 公 告, 连 续 停 牌 万 泽 股 份 临 时 停 牌 爱 康 科 技 重 大 事 项, 特 停

郑 州 煤 电 重 要 事 项 未 公 告, 连 续 停 牌 金 圆 股 份 重 大 事 项, 特 停 永 鼎 股 份 重 要 事 项 未 公 告, 连 续 停 牌 长 城 影 视 临 时 停 牌 天 兴 仪 表 临 时 停 牌

卧 龙 地 产 重 要 事 项 未 公 告, 连 续 停 牌 春 兴 精 工 临 时 停 牌 *ST 沧 大 重 要 事 项 未 公 告, 连 续 停 牌 天 地 源 重 要 事 项 未 公 告, 连 续 停 牌 汇 冠 股 份

关于建立境内违法互联网站黑名单管理制度的通知

<4D F736F F D20D0C5CFA2BBAFB7A2D5B9D6D8B5E3D7A8CFEEB9E6BBAE2E646F63>

? 這 全 都 是 市 政 府 提 供 給 我 的 資 料 低 底 盤 公 車 計 畫 96 年 預 算 新 台 幣 4,500 萬 元 97 年 預 算 新 台 幣 1 億 6,500 萬 元 98 年 預 算 新 台 幣 3 億 2,300 萬 元, 共 有 307 台 低 底 盤 公 車,99

概述

UDP 8.2 TCP/IP OSI OSI 3 OSI TCP/IP IP TCP/IP TCP/IP Transport Control Protocol TCP User Datagram Protocol UDP TCP TCP/IP IP TCP TCP/IP TC

AL-M200 Series

chap07.key

untitled

今天 年春季号 总 92 期

*

( ) / / / / / / /

(Microsoft Word - 8\244T\244\362\277\337\272]\244W\265L\246W.doc)

Microsoft Word - 專家本色 doc


但, 你 应 该 听 过 我 们 走 在 大 路 上 这 首 歌, 或 许 还 知 道 革 命 人 永 远 是 年 轻 那 支 歌 ; 并 且, 几 乎 可 以 肯 定, 你 在 戴 红 领 巾 的 那 阵, 必 然 唱 过 牛 儿 还 在 山 坡 吃 草, 放 牛 的 却 不 知 道 哪 儿 去

2 临 终 助 念 答 问 序 临 终 关 怀, 由 佛 门 净 宗 古 来 祖 师 大 德 提 倡 助 念 往 生, 现 今 已 渐 为 社 会 大 众 所 重 视, 在 台 湾, 台 大 长 庚 等 各 大 医 院, 也 都 设 有 助 念 室 ; 大 陆 上 许 多 道 场, 也 有 专 为

校园之星

Microsoft Word - 澎湖田調報告-宏達組9804.doc

<4D F736F F F696E74202D FA8BEA861B8EAB7BDBEE3A658BB50C0B3A5CE28B773A6CBA5AB29>


之 原 則 及 國 防 部 訂 頒 國 軍 列 管 國 有 不 動 產 提 供 非 軍 方 單 位 使 用 處 理 原 則 規 定 不 符, 仍 應 以 出 租 方 式 辦 理 惟 可 就 偏 遠 地 區 提 供 官 兵 金 融 水 電 服 務 使 用 部 分, 研 議 降 低 租 金 標 準, 報

chineseall

釋禪波羅蜜次第法門

证券代码: 证券简称:锦江股份 公告编号:【】

1700 装 卸 搬 运 7645 装 卸 搬 运 服 务 2100 建 筑 7410 工 程 服 务 11% 装 卸 搬 运 服 务, 是 指 使 用 装 卸 搬 运 工 具 或 者 人 力 畜 力 将 货 物 在 运 输 工 具 之 间 装 卸 现 场 之 间 或 者 运 输 工 具 与 装 卸

前 言 教 育 无 小 事, 它 成 就 着 学 生 的 未 来 作 为 教 师, 他 们 无 时 无 刻 不 在 关 注 着 学 生 的 成 长 学 生 的 未 来 学 生 就 像 一 朵 含 苞 待 放 的 花 朵, 需 要 老 师 们 的 细 心 呵 护, 给 学 生 需 要 的 东 西, 而

《盗墓笔记》 南派三叔/著

平 凡 足 迹 李 本 川 作 者 为 中 国 科 学 院 海 洋 研 究 所 研 究 员,1935 年 生, 山 东 荣 成 人 我 今 年 63 岁 了 大 前 年 丈 夫 和 儿 子 在 一 个 月 内 先 后 离 开 了 人 世, 女 儿 又 已 出 嫁, 现 在 是 孑 然 一 身 我 是

<CFFBB7D1D5DFD0D0CEAAD1A72E6D7073>

独立学院建设与发展


华恒家庭网关方案

untitled


epub83-1

(UTM???U_935_938_955_958_959 V )

IP505SM_manual_cn.doc

联想天工800R路由器用户手册 V2.0

<4D F736F F D20CDB6D7CAD5DFB1A3BBA4B5E4D0CDB0B8C0FDA3A831322D3234A3A9>

Guava学习之Resources

C6_ppt.PDF

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.06.doc

<4D F736F F F696E74202D20A1B6CFEEC4BFD2BB20B3F5CAB6BCC6CBE3BBFACDF8C2E7A1B7C8CECEF1C8FD20CAECCFA A1A24950D0ADD2E9BACD4950B5D8D6B72E707074>

飞鱼星多WAN防火墙路由器用户手册

MASQUERADE # iptables -t nat -A POSTROUTING -s / o eth0 -j # sysctl net.ipv4.ip_forward=1 # iptables -P FORWARD DROP #

退市制度改革注重保护中小投资者权益

<4D F736F F F696E74202D20B5DAC8FDB2BFB7D620CEDECFDFBED6D3F2CDF8B5C4CAB5CFD6205BBCE6C8DDC4A3CABD5D>

HD ( ) 18 HD ( ) 18 PC 19 PC 19 PC 20 Leica MC170 HD Leica MC190 HD 22 Leica MC170 HD Leica MC190 HD Leica MC170 HD

2/14 Buffer I12, /* x=2, buffer = I 1 2 */ Buffer I243, /* x=34, buffer = I 2 43 */ x=56, buffer = I243 Buffer I243I265 code_int(int x, char *buffer)

一 登录 crm Mobile 系统 : 输入 ShijiCare 用户名和密码, 登录系统, 如图所示 : 第 2 页共 32 页

< Essential LEDtube > | < Philips >

操作指南 10 月 /2015 年 如何配置 SCALANCE W AP 的 DHCP 功能? SCALANCE W DHCP IP 地址 Unrestricted

一、选择题

提问袁小兵:

90 1 2/3 2/

ST template WORD

第4章网络层_2_.doc

C++ 程式設計

Microsoft Word - IP Protection by Chinese Courts in 2012_CH.docx

CE UL LLHA5 / 7 ( LLGT22 ) ( LLHA9 ) ( LLGT22 ) ( LLHA9 ) 3 ( LLHA5 / 7 ) ( LLGT22 ) ( LLHA5 / 6 )

ebook140-11

untitled

BlueNRG-1

C3_ppt.PDF

TCP/IP TCP/IP OSI IP TCP IP IP TCP/IP TCP/IP

目 录(目录名)

ChinaBI企业会员服务- BI企业

Microsoft Word - 把时间当作朋友(2011第3版)3.0.b.07.doc

Transcription:

使用 CubeMX 生成 TCPEchoServer 工程 前言 在 STM32 的众多外设中, 以太网这个外设相对而言还是比较复杂, 初始化的过程也比较复杂, 涉及到 MAC,DMA,PHY 好几块内容的初始化 可能有时候 datasheet 都看得头疼了, 可初始化还是有问题 而 STM32CubeMX 工具就可以帮我们轻松完成这部分工作 在本文中, 将分别以 STM3220G-EVAL 板为例, 通过 CubeMXv4.11 来新建一个基于 RAW API 的 TCPEchoServer 的工程 用 CubeMX 建立基于 STM3220G-EVAL 的工程 用 CubeMX 进行初始化配置 1. 新建一个 Project, 在向导中选择 STM3220G-EVAL 板 2. 因为我们直接选择了 STM3220G-EVAL 板, 新建的 CubeMX 工程打开时就已经有默认的配置在里面了 所以我们只需要打开以太网和加入 LWIP 中间件就可以了 1) 在 ETH 下面选择 MII 模式 ; 2) 使能 LWIP 2 1 3. 配置以太网的参数

1 2 在 Parameter Settings 页面, 可以配置 MAC 地址,PHY 的地址, 是否进行自动协商等 这里, 我们设置了 MAC 地址为 02 :00 :00 :00 :00 :00,PHY 地址为 1 在 CubeMXv4.11 版本里, 以太网的参数设置还增加了 Advanced Parameters 页, 可以根据所用的 PHY 修改寄存器的地址和一些 MASK 的设置 CubeMX 中默认的配置是以 DP83848C 为例进行设置的 STM3220G-EVAL 用的 PHY 就是 DP83848C, 所以不用修改也可以用 对于其他的 PHY, 不能完全通过 CubeMX 来配置, 需要根据 PHY 的数据手册, 手动的修改代码 将有冲突的地方删除, 或者添加某个功能 Advanced Parameters 页分为三个部分 : External PHY Configuration 复位延时, 读 / 写超时的参数设置 Common :External PHY Configuration PHY 的基础寄存器配置, 这部分寄存器对于大部分 PHY 都是相同或类似的 Extended :External PHY Configuration PHY 的扩展寄存器配置, 这部分对于每个 PHY 都是不一样的 如果是使用 DP83848C 以外的 PHY, 这部分内容需要特别注意

4. 修改 LWIP 的参数 配置好以太网的参数后, 点击 OK, 回到 CubeMX 的配置界面 选择 LWIP 继续进行参数配置 首先是 General 页面, 在这里我们可以看到 LWIP 的版本号 配置 IP 地址信息, 可以选择通过 DHCP 的方式动态分配 IP, 也可以分配一个静态的 IP 地址 这里, 我们选择配置静态的 IP 地址 192.168.0.10, 子网掩码 255.255.255.0, 网关 192.168.0.1 ICMP 协议打开, 因为我们用的是 TCP 协议, 所以把 UDP 协议关掉 不用担心不知道每项参数是做什么用的, 选择每一项参数后都会在窗口的底部显示该项参数的解释

在 All LwIP Options 这一页里, 有更多的参数可以配置 关于接收 / 发送内存的配置也是在这里 选择右上方的 Show Advanced Parameters 后, 还有更多的参数配置项 这里, 我们也可以不做修改, 使用默认值 CubeMX 中每个参数项的名 称和代码中的名称相同, 这样也方便了在代码中进行查找 到此为止, 我们在 CubeMX 中需要做的配置就全部完成了 选择 Project >Generate Code, 生成初始的工程 添加用户代码 用 IAR 打开前面已经生成好的工程 我们还需要两步就可以完成一个简单的 TCP EchoServer 程序了 1. 新建 tcp_echoserver.c 文件, 在 tcp_echoserver.c 里要做下面这几件事情 : 1) 新建一个 tcp_echoserver_pcb( 调用 tcp_new 函数 ); 2) 将新建的 tcp_echoserver_pcb 与要监听的端口绑定 ( 调用 tcp_bind 函数 ) 3) 转成监听状态 ( 调用 tcp_listen 函数 ) 4) 注册回调函数 tcp_echoserver_accept, 当有新连接建立后会调用该函数 ( 调用 tcp_accept 函数 ) 5) 注册回调函数 tcp_echoserver_recv, 当该连接接收到数据后会调用该函数 ( 调用 tcp_recv 函数 ) 6) 完成 tcp_echoserver_recv 函数, 在该函数内, 将收到的数据再发出去 需要注意, 本文的目的是示例如何用 CubeMX 建立一个简单的 TCP EchoServer 程序, 所以考虑的都是最基本简单的情况 比如, 在回发数据部分, 我们假设 Client 发来的数据都在一个 Pbuf 的大小以内

完成 tcp_echoserver.c 后, 将其加入到工程项目中 #include "stats.h" #include "tcp.h" void tcp_echoserver_init(void); static err_t tcp_echoserver_accept(void *arg, struct tcp_pcb *newpcb,err_t err); static err_t tcp_echoserver_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,err_t err); static struct tcp_pcb *tcp_echoserver_pcb; void tcp_echoserver_init(void) err_t err; tcp_echoserver_pcb = tcp_new(); if(tcp_echoserver_pcb!=null) err = tcp_bind(tcp_echoserver_pcb,ip_addr_any,7); if(err == ERR_OK) tcp_echoserver_pcb = tcp_listen(tcp_echoserver_pcb); tcp_accept(tcp_echoserver_pcb,tcp_echoserver_accept); else memp_free(memp_tcp_pcb, tcp_echoserver_pcb); static err_t tcp_echoserver_accept(void *arg, struct tcp_pcb *newpcb,err_t err) /* initialize lwip tcp_recv callback function for newpcb */ tcp_recv(newpcb, tcp_echoserver_recv); return ERR_OK; static err_t tcp_echoserver_recv(void *arg, struct tcp_pcb *tpcb, struct pbuf *p,err_t err) struct pbuf *ptr; u16_t plen; tcp_write(tpcb,p->payload,p->len,1);

return ERR_OK; 2. 在 main 函数中添加 tcp_echoserver_init(), 在 while(1) 中添加 MX_LWIP_Process() 查询接收数据 记得要将代码加 在 /*USER CODE BEGIN*/ 和 /*USER CODE END*/ 之间, 这样才不会在下次用 CubeMX 生成代码时被覆盖掉 MX_LWIP_Init(); /* USER CODE BEGIN 2 */ tcp_echoserver_init(); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ MX_LWIP_Process(); /* USER CODE END 3 */ 一个简单的 TCP Echoserver 程序就完成了 测试结果 我们来看一看 ping 测试和 TCP 测试工具的结果 1. 通过电脑 (192.168.0.11)ping STM3220G-EVAL 板 (192.168.0.10) 2. 通过 TCP 测试工具模拟客户端, 向 STM3220G-EVAL 板发一串数据

测试结果说明我们刚刚建立的 TCP EchoServer 程序已经能正常工作了 以上所介绍的只是 CubeMX 配置以太网程序的一部分功能, 其他的功能稍后会一一道来!

重要通知 - 请仔细阅读 意法半导体公司及其子公司 ( ST ) 保留随时对 ST 产品和 / 或本文档进行变更 更正 增强 修改和改进的权利, 恕不另行通知 买方在订货之前应获取关于 ST 产品的最新信息 ST 产品的销售依照订单确认时的相关 ST 销售条款 买方自行负责对 ST 产品的选择和使用, ST 概不承担与应用协助或买方产品设计相关的任何责任 ST 不对任何知识产权进行任何明示或默示的授权或许可 转售的 ST 产品如有不同于此处提供的信息的规定, 将导致 ST 针对该产品授予的任何保证失效 ST 和 ST 徽标是 ST 的商标 所有其他产品或服务名称均为其各自所有者的财产 本文档中的信息取代本文档所有早期版本中提供的信息 2015 STMicroelectronics - 保留所有权利