基于STM32的嵌入式单片机简明教程 课件 第5章 同异步串行收发器USART_第1页
基于STM32的嵌入式单片机简明教程 课件 第5章 同异步串行收发器USART_第2页
基于STM32的嵌入式单片机简明教程 课件 第5章 同异步串行收发器USART_第3页
基于STM32的嵌入式单片机简明教程 课件 第5章 同异步串行收发器USART_第4页
基于STM32的嵌入式单片机简明教程 课件 第5章 同异步串行收发器USART_第5页
已阅读5页,还剩30页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

USART简介串口发送实验串口接收实验第五章同异步串行收发器(USART)计算机如何Say“Hi”?收到下列信息代表什么含义?计算机如何Say“Hi”?如果事先约定好,把3.3V看成逻辑1,0V看成逻辑0,每1秒传输一位,信息以一个字节(8位)为单位传输:电压变化为二进制的“01001000”,对应十六进制0x48,对应十进制72。ASCII码,大写字母“H”的ASCII码是72。当再接收到代表“i”的二进制“01011001”时,就接收到信息“Hi”了。通过上述简化例子,可知:在通信之前通行双方应该约定一定的规则(通信协议)

以字节为单位传输,每秒传输一个逻辑位……每秒传输多少个逻辑位也称之为波特率,表示串行数据的传输速率。1.USART简介同/异步串行收/发器(USART),简称串口:实现通信功能的外设,具有同步和异步模式。异步传输:主机只管发送数据,从机不一定在主机发送数据的同时接收数据,收发不一定同步。主要使用方式。

邮递员向邮箱投递了一封信,或许你三天后才打开拿出来。同步传输就是指收发数据是同步进行的。USART使用注意事项使用简单:用户只需要将信息以字节为单位输入USART即可完成发送,接收时对于用户来说也是收到完整的一个个字节。不需要分析电平变化。只需要关注接收(RX)、发送(TX)和地(GND):发送对接收,接收对发送,即可实现相互通信。2.串口发送实验2.串口发送实验实验原理两种232连接座以及引脚编号:公头(左)和母座(右)实际工程中常会根据一些通信标准将STM32串口的电压进行转换后再通信,从而达到延长通信距离、增强抗干扰性等目的。这里我们要介绍一种常见的串口通信标准——RS232,除此之外,工业中常用的串口通信标准还有RS485、RS422等。实验原理两种232连接座以及引脚编号:公头(左)和母座(右)引脚编号引脚定义说明1DCD载波检测2RXD接收数据3TXD发送数据4DTR数据终端准备好5GND信号地6DSR数据准备好7RTS请求发送8CTS清除发送9RI振铃提示实验原理RS232能够延长通信距离、增强抗干扰性,因为,RS232增强了传输信号的电压。单片机输出的通信电平称之为“TTL电平”,转换之后称之为“232电平”。TTL电平:3.3V表示高电平(逻辑1),0V表示低电平(逻辑0)。232电平则规定逻辑1为-3V~-15V,逻辑0为+3~+15V,-3V~+3V之间的电压则为非法状态。实验原理电平状态电压0+3~+15V1-15~-3V非法状态-3~+3V232电平232发送信号过程——(1)单片机的串口(USART)会将要发送的一个字节(共8位,D0-D7表示)处理成串行一位一位的TTL电平信号(2)该信号通过收发器(MAX232等芯片)再转换为232电平信号,最终传输至接收设备。STM32单片机接收信号的流程则刚好反过来。实验原理0x4801001000单片机的USART相关引脚实验原理芯片数据手册中PA9和PA10引脚说明实验原理串口电平转换电路实验原理软件原理定义了一个USART_InitTypeDef类型结构体,用于后续的串口配置开启了GPIOA、复用时钟AFIO和串口USART1的时钟,参数中“|”表示按位运算的或逻辑运算,意思是这几个时钟同时被激活使能PA9和PA10作为串口1的收发引脚,因此激活GPIOA的时钟这两个引脚这里不是作为GPIO(通用输入输出),而是作为串口的相关引脚,因此还使能了复用时钟AFIO软件原理将相应串口的设置恢复为默认值,即串口复位PA9用作发送引脚,配置为复用推挽输出模式;PA10用作接收引脚,配置为浮空输入模式软件原理成员变量1:USART_BaudRate是串口波特率,表示了串行数据的传输速率。通信双方波特率应该一致,否则通信将失败。成员变量2:USART_HardwareFlowControl,硬件流控制是专门用于连续数据流速率的控制,防止收发缓存溢出的一种手段,一般都选择选择无硬件流控制,即USART_HardwareFlowControl_None软件原理成员变量3:USART_Mode串口模式选择,串口可以选择配置为发送模式(USART_Mode_Tx)或接收模式(USART_Mode_Rx),第31行设既可以接收又可以发送。软件原理成员变量4,5,6:USART_Parity、USART_StopBits、USART_WordLength分别为奇偶校验位,停止位,字长。两个串口设备相互通信时奇偶校验、停止位和字长都应该一致,否则通信将失败。第32-34行将这几个变量设置为最常见的无奇偶校验位、一位停止位和8位字长。第35行将填充完员变量的结构体USART_Initstructure的成结构体成员变量设置到相应寄存器,真正发挥作用。软件原理USART_Cmd函数激活使能串口1软件原理串口发送部分软件原理USART_SendData的功能是向串口发送一个字符,其第一个参数指定使用哪个串口发送,第二个参数为发送的内容。串口发送一个字符需要时间,当串口正在发送数据时又发送新的数据,此时将打断当前发送过程导致发送错误。因此,再发送新字符之前,需要使用USART_GetFlagStatus函数进行判断,确认发送完成。软件原理USART_GetFlagStatus第二个参数为USART_FLAG,通过给定不同标志位函数可以查询串口的不同状态。软件原理使LED1在串口发送后闪烁,其中自定义的延时函数delay函数定义在程序的第2-6行:程序考核任务请将串口通讯线从RS232接口1更换到RS232接口2(参考开发板实物图2.2),修改本节例程,实现使用串口2完成发送实验。注意:串口USART1属于总线APB2,串口USART2和USART3属于总线APB1(参见小节3.2.2.2.1中图3.10),因此激活USART2时钟的库函数应该是RCC_APB1PeriphClockCmd,而非RCC_APB2PeriphClockCmd。3.串口接收实验本节使用中断的方式接收数据,在完成所有配置后,一旦STM32串口接收到数据,系统就会自动执行串口中断服务函数。在串口中断服务函数中,单片机对接收到的字符进行判断,并作出点亮/熄灭LED灯、发送数据等相应处理,从而实现实验功能。实验原理串口中断服务函数USART1voidUSART1_IRQHandler(void)USART2voidUSART2_IRQHandler(void)USART3voidUSART3_IRQHandler(void)软件原理第9-33行串口的相关配置大部分内容和串口发送实验的配置相同,特殊之处:使能了串口接收中断(USART_IT_RXNE),当串口接收到数据后,程序自动进入串口中断服务函数。软件原理第6-8行,以及第35-41行是中断相关的配置第8行将NVIC分组设置为分组4(NVIC_PriorityGroup_4),所有中断优先级都设为抢占优先级,抢占优先级的级别可以设为0-15,响应优先级只能设为0。第36行选定要配置的中断为串口1中断,并在第38行将其抢占优先级设为0,39行将响应优先级也设为0,从而串口1中断优先级最高。第41行将NVIC_Initstructure关联至寄存器,使其生效。软件原理配置好串口1之后,当使用电脑串口调试助手发送字符时,单片机串口1将收到该字符就满足串口1的中断触发条件,从而自动执行中断函数USART1_IRQHandler。中断服务程序先确认了串口1接收到了数据,然后把接收到的数据存到字符变量temp。如果接收字符为‘o’或者‘O’,则返回字符串“OK\n”至电脑,并点亮LED2;如果接收字符为‘c’或者‘C’,则返回字符串“OK\n”至电脑,并熄灭LED2。在中断服务程序末尾,程序清除了中断标志位。软件原理第61行,使用库函数USART_GetITStatus对串口1状态进行了判断,如果串口1确实接收到了字符,那么这个函数返回值为SET,也就是不等于RESET。所以,确认了串口1确实接收到了字符,然后才执行后续程序。第63行USART_ReceiveData函数将接收到的数据赋给变量temp。USART_ReceiveData函数函数的参数是串口号,USART1表示函数从串口1接收区获取所接收的数据。后续程序对temp进行判断,也就是对电脑发送给单片机的字符进行判断。软件原理第89行将中断接收标志清零。单片机根据中断标志进入相应中断服务程序的,串口接收到字符后会射中接收中断标志USART_FLAG_RXNE,进而进入串口中断服务函数。串口接收中断

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论