STM32+FreeRtos+Lwip移植笔记Ⅲ

罪过罪过,太久没发博客,最近杂事太多,脑子也乱哄哄的,加上过年放松了好长时间,就不更了。

每天就算10分钟, 也要坚持做一下近期的目标,养成习惯是成为专家的方法。

上次说用收完一帧数据作为条件来触发信号量(事件)从而同步下一步的执行。我在程序里是如何判断收完了一阵数据?我自己建了几个全局变量——例如num_ToReadPc(即将从Pc读取的数据的长度),其实很类似Windows的numToRead这个Serial类的属性。只要收到的counts达到这个指标就触发事件,进行校验等等下一步操作。

使用OS的好处之一:我认为,在需要等待串口信息回复时,如果等待超时,将退出不再等待继续执行;若得到触发,则直接通过并继续执行。光这一点,不用OS就有点麻烦——你需要自己建立一套超时重发的机制,in addition,c只能在函数的最开始定义变量,(还是说MDK编译器特有的?) 这样使得代码十分零乱,需要大量注释,逻辑也十分混乱......

 

USART能用DMA更好,每次一个字节来,都要进中断,这上下文切换将会浪费时间,不如一次性收完在处理一下。

转载于:https://www.cnblogs.com/YipCharlesLee/p/4373530.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
实现STM32 FreeRTOS LwIP TCP服务器需要按照以下步骤进行操作: 1. 首先,需要配置LwIPFreeRTOS。可以在STM32CubeMX中选择配置相应的组件,生成对应的代码和初始化函数。 2. 在代码中创建任务来处理TCP服务器。通过创建一个任务,可以将其分配给特定的核心,以处理TCP请求和响应。 3. 在任务中,首先需要进行LwIPFreeRTOS的初始化。这样可以确保网络和操作系统的适当设置。需要调用lwip_init()和vTaskStartScheduler()函数。 4. 配置和创建TCP服务器的套接字。可以通过调用lwip_socket()函数创建一个TCP套接字,并使用lwip_bind()函数将其与特定的IP地址和端口绑定。 5. 通过调用lwip_listen()函数监听TCP套接字,等待客户端的连接。 6. 使用lwip_accept()函数接受客户端的连接请求,并获得一个新的套接字来处理与该客户端之间的通信。 7. 通过调用lwip_recv()和lwip_send()函数来接收和发送数据。可以使用这些函数接收来自客户端的数据,并发送响应数据给客户端。 8. 当与客户端的通信完成后,使用lwip_close()函数关闭套接字。 9. 循环进行步骤6-8,以处理其他客户端的连接和通信请求。 需要注意的是,STM32系列芯片的内存和处理能力有限,因此在编写代码时需要谨慎处理内存和资源的分配和释放,以确保程序的稳定性和性能。 总结:通过以上步骤,可以在STM32上使用FreeRTOSLwIP实现TCP服务器,使其能够接受和处理客户端的连接和通信请求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值