结合我现在做的项目说, 有CAN通讯与串口通讯需要处理, 目前我的处理方案(方案一)是将协议解析与处理直接在中断回调函数中运行, 后续想尝试(方案二)在CAN接收中断与串口接收中断中只做数据缓存(用FreeRTOS的消息队列), 协议解析与处理用单独的任务处理:循环体中反复取出消息队列中缓存的数据,根据协议解析并处理。 方案一:优点:处理及时 缺点:不适合做复杂处理占用中断时间,理论上中断处理越简单越好,但是通讯协议中会包含有占用时间长的执行动作 方案二:优点:中断占用时间短 缺点:对通讯数据响应不及时 想跟做过类似项目的大佬们交流一下。 |
推荐方案2,中断中存一下数据立即回到循环体,响应其实很快。反而方案1在中断中耽误太多时间,影响下次中断接收,这就不能说是处理及时了,是根本就不处理。 |
中断处理一定要及时的,本来就注重不要被错误原因卡死之类,所以推荐二 |
不管是从业务逻辑还是代码逻辑来考虑,都推荐将数据接收和协议解析分开处理 |
STM32H750如何搭配88E6320來使用?
硬件的spi单线传输怎么读写寄存器。
STM8AF6266 LIN通讯实例
STM32L4R9最大支持SD卡的容量是?支持SDXC 64G卡吗?
有使用过芯讯通的A7680C这个4G模块吗?
ST60系列可以使用OFDM调制进行发射接收吗?
STM32F103的LIN Break问题
关于使用STM32G030C8T6的串口收发过程中串口接收问题
有人知道stm32cubemx中,如何自定义lwip平台。(默认只有一个lan和dp的芯片,我需要用yt8512的)。或者说cubemx生成的lan芯片的文件如
stm32f767zi 以太网无法接收问题