stm32cubeMX配置LWIP
2024-10-19 22:36:54
MCU:stm32f769NIHx
PHY:LAN8742A
LWIP_VERSION:2.0.3
1.配置RCC,串口(printf debug log)
(1)开启RCC,配置时钟系统
图1.1
(2)时钟树配置如下图所示
图1.2
(3)串口1配置基本参数
图1.3
/* 小技巧 */ 在工程里我们平时会用到printf打印debug信息,如果产品发布的时候,这些打印信息就要注释掉,为了方便管理,我们会对prinf再次封装并用宏去控制开启和关闭debug_log /* printf重定向 不用标准库 减少代码量 */
#if 1
#pragma import(__use_no_semihosting) int _ttywrch(int ch)
{
ch=ch;
return ch;
} struct __FILE
{
int handle;
}; FILE __stdout; void _sys_exit(int x)
{
x = x;
}
//重定义fputc函数
int fputc(int ch, FILE *f)
{
while((USART1->ISR&0X40)==);//循环发送,直到发送完毕
USART1->TDR = (u8) ch;
return ch;
}
#endif /* 宏控制 debug log */ #ifdef MY_DEBUG
#define debug(format, ...) printf(format, ##__VA_ARGS__)
#else
#define DEBUG(format,...)
#endif
2.ETH配置参数
·
图1.4
(1)PHY前16个寄存器是通用的标准的,所以都一样。第31个寄存器是比较重要,可以读取这个寄存器获取通讯速度和是否处在自协商模式
图1.5
通讯(2)模式为RMII:关于RMII和MII的区别,详情请看https://blog.csdn.net/fun_tion/article/details/70270632
图1.6
(3)LWIP参数配置,应为没有路由器,直接用网线和电脑相连,所以只能使用敬爱IP不能使用DHCP ,ICMP功能需要打开,因为这个功能是用来ping消息的。UDP和TCP也关掉了,目前还没有用到,,其他参数默认,在主函数循环中循环调用MX_LWIP_Process();包括轮训接收信息和一些LWIP协议栈需要定时调用的函数
图1.7
最新文章
- WebClient 实现多文件/文本同时上传
- 【初探移动前端开发05】jQuery Mobile (整合版)
- Java中primitive type的线程安全性
- Python之路【第十四篇】前端补充回顾
- C++ WIN32控制台异常关闭回调函数
- [POLITICS] S Korea lawmakers vote to impeach leader
- MySQL数据库的优化-运维架构师必会高薪技能,笔者近六年来一线城市工作实战经验
- Candies(差分约束)
- ASP.NET中页面传值
- FTP传输文件被破坏的问题(Linux、Busybox)
- java nginx等代理或网关转发请求后获取客户端的ip地址,原理
- Spring AOP 的实现机制
- android ViewStub简单介绍
- jquerymobile动态添的无索刷新
- Python学习札记(四十) 面向对象编程 Object Oriented Program 11
- mssqlServer大量数据快速插入:SqlBulkCopy
- 悲剧文本(Broken Keyboard (a.k.a. Beiju Text),UVA 11988)
- Go 语言 基础 【第一篇】:package fmt导入
- mac废纸篓清空的心得、mac设置不睡眠不待机不锁屏、如何快速锁屏待机睡眠、mac重启、mac学习的必备软件-城
- Linux如何根据UUID自动挂载磁盘分区