串口的配置一般有几种形式
发送:我一般是需要发送数据的时候,一般是按照协议,直接就发出去了,这个简单
接收:
一般是开接收中断,有数据进来就存到数组,然后看是否满足通信协议。
是不是我这样用,太低级了?有没有更便捷的方式?
我目前最喜欢的方案是接收中断、接收超时中断、发送中断都开起来。
接收中断负责把接收到的数据存到缓存数组
接收超时中断负责判断是否接收完成,接收完成了给接收完成标记
在另外的定时循环函数里面检查接收完成标记,然后解析协议
协议解析完以后按协议发送数据,开发送中断,每进一次中断发送一个字节数据,直到发完。 你这边是用哪颗芯片?具体可以参靠用户手册的串口章节。一般为提高效率,可以结合DMA使用。 没有看懂楼主是什么意思 保存到数组不行吗 使用dma啊 你使用的是哪款芯片呢 串口配置中断 可以使用DMA传输数据 参考一下ringbuff 没有了,基本都是中断代码 开接收中断就可以满足要求。 更便捷的方式?这个是什么意思 SDLin 发表于 2021-9-29 11:43
你这边是用哪颗芯片?具体可以参靠用户手册的串口章节。一般为提高效率,可以结合DMA使用。 ...
dma没用过,最近确实想做DMA的尝试~~
产品用的串口比较多,收发想弄成统一的形式~ tail066 发表于 2021-10-13 14:20
dma没用过,最近确实想做DMA的尝试~~
产品用的串口比较多,收发想弄成统一的形式~ ...
https://bbs.21ic.com/forum.html?mod=attachment&aid=MTc1NTQ4OHw5NDI1M2UyMnwxNjM0MTExNjQ2fDMyNjg0MzZ8MzE2MzA0OA%3D%3D这是HK32F103的UART+DMA例程,供参考。 通信方式一共就这么几种,全双工,半双工,单工 满足通信协议? 好用就行了 满足应用就好,提高效率的话,可以考虑dma 把DMA用起来效率更高
页:
[1]