
项目问题
文章平均质量分 81
记录一些在项目中遇到的问题及分析
想要成为大神的小菜鸟
这个作者很懒,什么都没留下…
展开
-
tcp-listen()函数的作用?返回值代表什么?
返回一个指向`struct tcp_pcb`(TCP协议控制块)的指针,这个PCB是专门用于监听的新结构,与原始的`tcp_pcb`分离(原始PCB转为监听状态后不能再用于数据传输)。`tcp-listen`函数将一个已绑定的TCP套接字(通过`tcp_bind()`绑定IP和端口)转换为**监听状态**,使服务器能够接受客户端的连接请求。通常在监听时会指定一个**回调函数**(如`accept_callback`),当有新连接到达时,内核会自动调用该回调函数处理连接。1. **创建监听套接字**原创 2025-03-27 10:53:12 · 441 阅读 · 0 评论 -
TCP发送缓存区已满怎么办(deepseek版)
**方法** | **适用场景** | **缺点** |MX_LWIP_Process();**注意**:此方法会阻塞主循环,需确保`MX_LWIP_Process()`能被及时调用。- **提高协议栈处理频率**:确保`MX_LWIP_Process()`调用间隔≤1ms。2. **动态监控网络状态**:通过`tcp_sndbuf()`和错误统计调整发送频率。原创 2025-03-25 14:37:45 · 964 阅读 · 0 评论 -
更改TCP发送频率(deepseek版)
通过 **硬件定时器 + 主循环标志位检测** 实现 20ms 发送频率的核心代码,既避免了 `tcp_poll` 的周期限制,又确保了协议栈的线程安全性。在裸机环境下若不使用 `tcp_poll` 机制,可以通过 **用户定时器中断 + 主动发送控制** 实现 20ms 的 TCP 数据发送频率。- LwIP函数(如 `tcp_write`, `tcp_output`)需在**主线程上下文**调用,禁止在中断中直接使用。- **主循环主动发送**:在主循环中检测发送标志位,触发数据封装和发送。原创 2025-03-25 12:14:31 · 648 阅读 · 0 评论 -
增量式码盘读出“”“负数”原理分析
但是(int)TIMEx->CNT操作后,赋值给num,int类型的范围为(-32768~32767),所以,当CNT中的值不断累加时,0,1,2.。其中1位负号,(1)000 0000 0000 0000为32768,此时为-32768。进而为-32767.。所以num = (int)TIMEx->CNT;在CNT为0时,反转减1,num为-1,依次类推。,通过int)TIMEx->CNT操作,取反(符号位不变,其它位取反)原创 2023-07-13 21:21:27 · 413 阅读 · 0 评论 -
UART 空闲中断+DMA接收流程
UART 空闲中断+DMA接收问题及解决方案原创 2023-03-06 21:14:32 · 1159 阅读 · 1 评论