网站大量收购独家精品文档,联系QQ:2885784924

嵌入式系统电子课件-9.2 UART.pptx

嵌入式系统电子课件-9.2 UART.pptx

此“教育”领域文档为创作者个人分享资料,不作为权威性指导和指引,仅供参考
  1. 1、本文档共19页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

UART

UART★★本节实现UART传送数据的功能,首先从PC端向STM32F401处理器发送字符串,如“HelloWorld”,STM32F401处理器将每个字符加1,然后发送至PC端进行回显。

UART★★工作原理电路介绍软件设计020301

工作原理1UART数据帧结构串口电平转换芯片

0101UARTUART(UniversalAsynchronousReceiver/Transmitter,通用异步接收/发送装置)用于低速串行通信协议。该协议占用较少的资源,对通信双方时钟同步性要求不高,广泛应用于通信领域中数据传输量较少的场合。可实现数据的全双工传输,在传输过程中将数据的每个字符逐位分时传输。

0102数据帧结构数据以字符为单元进行传输,每个字符包含5~8位有效数据,每一位数据分时共用同一条数据线进行串行传输;字符的传输以一个低电平作为起始位,表示数据开始传输;紧接着是8个二进制数据位;数据帧结构

0102数据帧结构然后是奇偶校验位,是否需要奇偶校验由相关寄存器进行设定;最后,字符传输以一个高电平作为停止位,表示数据传输结束。紧跟停止位的是若干空闲位,表示等待下一个字符进行传输。数据帧结构

0103串口电平转换芯片STM32F401的串口采用TTL电平,逻辑1的电平是5V,逻辑0的电平是0V;通信时需经过电平转换;本例使用MAX3232作为串口电平转换芯片。电脑串口使用RS232C标准电平,逻辑0的电平是+3V~+12V,逻辑1的电平是-3V~-12V

0103串口电平转换芯片编号符号引脚说明编号符号引脚说明1C1+倍压电荷泵电容的正端9R1_OUTTTL/CMOS接收器输出2V+电荷泵产生的+5.5V10T1_INTTL/CMOS发送器输入3C1-倍压电荷泵电容的负端11T2_INTTL/CMOS发送器输入4C2+反向电荷泵电容的正端12R2_OUTTTL/CMOS接收器输出5C2-反向电荷泵电容的负端13R2_INRS-232接收器输入6V-电荷泵产生的-5.5V14T2_OUTRS-232发送器输出7T1_OUTRS-232发送器输出15GND地8R1_INRS-232接收器输入16Vcc+3.0~+5.5V供电电源MAX3232引脚说明

电路介绍2STM32F401处理器的PA3引脚与MAX3232的引脚R2OUT相连,用于接收数据;PA2引脚与MAX3232的T2IN引脚相连,用于发送数据;MAX3223的T2OUT和R2IN连接至9针D型接口,实现RS232电平与单片机的TTL电平间的转换。串口电路图

软件设计20101定义相关宏及变量#defineUARTx USART2 //所用串口#defineUARTx_BAUDRATE9600 //所设波特率#defineUARTx_Tx_GPIO_PINGPIO_PIN_2 //发送引脚#defineUARTx_Tx_GPIO GPIOA //发送端口#defineUARTx_Rx_GPIO_PINGPIO_PIN_3 //接收引脚#defineUARTx_Rx_GPIO GPIOA //接收端口#defineUARTx_IRQn USART2_IRQn //串口中断号//使能串口时钟#defineUARTx_RCC_CLK_ENABLE() __HAL_RCC_USART2_CLK_ENABLE()//使能端口时钟#defineUARTx_GPIO_RCC_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()uint8_tRxBuffer; //存储接收到的数据

0105串口初始化UART_HandleTypeDefuartx; voidUARTx_Init(void){ UARTx_RCC_CLK_ENABLE(); //使能串口时钟 uartx.Instance=UARTx; //设置相应串口 uartx.Init.BaudRate=UARTx_BAUDRATE; //设置波特率为9600 uartx.Init.WordLengt

文档评论(0)

yzs890305 + 关注
实名认证
内容提供者

计算机二级持证人

该用户很懒,什么也没介绍

领域认证该用户于2024年11月02日上传了计算机二级

1亿VIP精品文档

相关文档