串口通信三种实现方式及电平转换说明.pdfVIP

  • 0
  • 0
  • 约2.86千字
  • 约 3页
  • 2026-01-04 发布于北京
  • 举报

串口通信三种实现方式及电平转换说明.pdf

•[STM32学习笔记4]串口通信的三种方式(查询、中断、DMA)-[ARM]

:时请以超形式标明文章原始出处和作者信息及本

协议详细内容参考下列:

PC机串口定义如下图:

5信号地线(SG)

4数据终端准备好(DTR)9振铃指示(RI)

3发出数据(TXD)8清除发送(CTS)

2接受数据(RXD)7请求发送(RTS)

1载波检测(DCD)6数据准备好(DSR)

一般的单片机串口应用只需3根信号线:3脚TXD(发送数据)、2脚RXD(接收数据)、5脚SG(信号

地)。其中单片机的TXD对应连接PC机的RXD,单片机RXD连接PC的TXD。即两者是交叉连接。需要

注意的是如果单片机部分串口接收电路已经将两者交换,则连接使用直通线即可。否则需要使用交叉线连接

(如万利的板子)。通常两头都是“母”的串口线是RXD与TXD是交叉连接的。如使用直通线注意在MAX232

等电平转换电路中将TX与RX交叉连接。

使用上面的三线连接,注意在超级终端里COMx口的“数流”为“无”即使你不使用超级终端调

试,也要注意,错误的设置将导致PC机出现只能接收而不能发送数据的现象。

串口使用-3V~-25V的负逻辑电平表示“1”,+3V~+25V表示逻辑“0”。调试时通过示波器捕捉串口波形是

个比较好的方法。(为了捕捉数字信号,对于大多数示波器设置触为脉冲)

个比较好的方法。(为了捕捉数字信号,对于大多数示波器设置触

USART数据传输由低位向传。串口电平转换电路串口电平转换为TTL(或LVTTL)电平。如下图:

当发送器激活,并且没有数据发送时,TX引脚处于高电平;当发送器时,TX恢复它的I/O端口配置。

一个完整的帧包括:起始位、数据位(8或9位)、停止位(1或2位)。两个特殊的帧:完全由“1”组成的

数据帧帧称为空闲字符帧;完全由“0”组成的帧称为断开字符帧。

在STM32处理器中,将发送数据写入USART_DR寄存器,此动作清除TXE(发送允许位)。软件读RXNE

位完成对RXNE(接收寄存器非空位)。RXNE必须在下一个字符接收结束前。

USART的所有中断被连接到一个中断向量中,也就是说需要在中断例程中判别各种可能出现的情况。

数据寄存器实际上由两个寄存器组成,一个给发送用(TDR只写),一个给接收用(RDR只读)。和AVR

的类似,两个寄存器合并成一个UDR寄存器

采用中断方式进行串口通信

通过对CodeVersionAVR上的串口通信程序的移植,在STM32上实现了串口数据收发的中断通信。收发

各自使用两个循环队列实现文件缓冲,从而提高了执行效率。

队列:一种先进先出(FIFO:FirstInFirstOut)的策略。

在向USART写数据时,先检测接收数据寄存器是否“满”,数据则写入队列中。当每发送完一帧数据后

进入中断程序,检测队列中是否有数据,数据则发送,否则。USART数据时的情况类似。需要注意

的是在USART_putchar()和USART_getchar()函数对缓冲区队列指针操作时需要中断。

Tips:在串口通讯中调用函数USART_GetITStatus(USART1,USART_IT_TC)检测接收是否完成,函数

USART_ClearF

文档评论(0)

1亿VIP精品文档

相关文档