串口通讯总结(基于HAL库)

KeySking笔记总结:

串口通讯三大方式

1.串口轮询

2.串口中断

3.DMA处理串口交互

1.串口轮询

轮询模式内部的底层:每个stm32接收和发送端口各存在有两个寄存器,一个为等待发送寄存器(TDR)

,一个为发送移位寄存器,我们调用HAL_UART_Transmit函数将数据在发送时,cpu会将数据先放在发送寄存器中,发送寄存器将数据给到发送移位寄存器,发送移位寄存器中的数据按照我们设置的比特率转换为高低电平从TX引脚输出。

在此期间,CPU不断去查询,发送寄存器中的数据是否已经移到了发送移位寄存器中。移动了就再把数据给到发送数据寄存器。

位于接收端,cpu不断的去查询接收数据寄存器中是否有新的数据可以读,一旦检测到就马上把数据从接收数据寄存器中移到内部变量里面去。

此模式的缺点,CPU一直被用来检测寄存器中有无数据,直到接收到我们想要的字节数,或者接收超时,否则一直会阻塞程序正常运行。

其中调用的函数第二个参数为变量地址,由于变量创建的为数组,直接就是地址就不需要添加取地址符号了。

2.串口的中断模式

串口的中断模式机制:与串口轮询不同的是,CPU不会反复去检

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值