tail066 发表于 2021-9-26 19:59

串口的配置一般有几种形式

发送:
我一般是需要发送数据的时候,一般是按照协议,直接就发出去了,这个简单
接收:
一般是开接收中断,有数据进来就存到数组,然后看是否满足通信协议。

是不是我这样用,太低级了?有没有更便捷的方式?

logan0279 发表于 2021-9-27 08:47

我目前最喜欢的方案是接收中断、接收超时中断、发送中断都开起来。
接收中断负责把接收到的数据存到缓存数组
接收超时中断负责判断是否接收完成,接收完成了给接收完成标记
在另外的定时循环函数里面检查接收完成标记,然后解析协议
协议解析完以后按协议发送数据,开发送中断,每进一次中断发送一个字节数据,直到发完。

SDLin 发表于 2021-9-29 11:43

你这边是用哪颗芯片?具体可以参靠用户手册的串口章节。一般为提高效率,可以结合DMA使用。

uiint 发表于 2021-10-3 20:37

没有看懂楼主是什么意思   

hellosdc 发表于 2021-10-3 20:37

保存到数组不行吗

mituzu 发表于 2021-10-3 20:37

使用dma啊            

suzhanhua 发表于 2021-10-3 20:37

你使用的是哪款芯片呢   

xietingfeng 发表于 2021-10-3 20:37

串口配置中断         

isseed 发表于 2021-10-3 20:38

可以使用DMA传输数据

wangdezhi 发表于 2021-10-3 20:38

参考一下ringbuff   

biechedan 发表于 2021-10-3 20:38

没有了,基本都是中断代码   

chenci2013 发表于 2021-10-3 20:38

开接收中断就可以满足要求。   

gygp 发表于 2021-10-3 20:38

更便捷的方式?这个是什么意思

tail066 发表于 2021-10-13 14:20

SDLin 发表于 2021-9-29 11:43
你这边是用哪颗芯片?具体可以参靠用户手册的串口章节。一般为提高效率,可以结合DMA使用。 ...

dma没用过,最近确实想做DMA的尝试~~
产品用的串口比较多,收发想弄成统一的形式~

SDLin 发表于 2021-10-13 15:55

tail066 发表于 2021-10-13 14:20
dma没用过,最近确实想做DMA的尝试~~
产品用的串口比较多,收发想弄成统一的形式~ ...

https://bbs.21ic.com/forum.html?mod=attachment&aid=MTc1NTQ4OHw5NDI1M2UyMnwxNjM0MTExNjQ2fDMyNjg0MzZ8MzE2MzA0OA%3D%3D这是HK32F103的UART+DMA例程,供参考。

cen9ce 发表于 2021-11-12 16:33

通信方式一共就这么几种,全双工,半双工,单工

zhizia4f 发表于 2021-11-12 16:36

满足通信协议?

q1ngt12 发表于 2021-11-12 16:37

好用就行了

littlelida 发表于 2021-12-6 16:00

满足应用就好,提高效率的话,可以考虑dma

gouguoccc 发表于 2021-12-7 08:55

把DMA用起来效率更高
页: [1]
查看完整版本: 串口的配置一般有几种形式