- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
STM32 例程 串口实验
实验要求
使用开发板上的串口向PC发送信息
PC通过串口向开发板发送数据,CPU在接收到后,确认信息,并通过串口返回数据
例如:开发板先发送一个字符‘c’,然后PC发送一个字符‘a’,开发板接收到后,再发送一个字符‘b’
[编辑] 实验目的
学习和掌握STM32的USART模块的工作原理和使用方法
学习和掌握USART固件库的使用
掌握串口中断的使用方法
[编辑] 实验分析
硬件分析:
USART的工作原理
软件分析:
USART固件库
USART实例
[编辑] 开发板原理图设计
MAX3232
与主芯片的连接
[编辑] 硬件知识点
详见STM32F10XXX英文版参考手册RM0008-Reference Manual
[编辑] USART
通用同步异步收发器(USART)提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用小数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互连网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。使用多缓冲器配置的DMA方式,可以实现高速数据通信。
(表) USART模式支持
[编辑] USART内部结构
[编辑] 引脚定义
任何USART双向通信至少需要两个引脚:接收数据输入(RX)和发送数据输出(TX)。
RX:接收数据输入。通过过采样技术来区别数据和噪音,从而恢复数据。
TX:发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。
在同步模式中需要下列引脚:
CK:发送器时钟输出。此引脚输出用于同步传输的时钟, (在起始位和停止位上没有时钟脉冲,软件可选地,可以在最后一个数据位送出一个时钟脉冲)。数据可以在RX上同步被接收。这可以用来控制带有移位寄存器的外部设备(例如LCD驱动器)。时钟相位和极性都是软件可编程的。在智能卡模式里,CK可以为智能卡提供时钟。
在IrDA模式里需要下列引脚:
IrDA_RDI: IrDA模式下的数据输入。
IrDA_TDO: IrDA模式下的数据输出。
在硬件流控模式中需要下列引脚:
nCTS: 清除发送,若是高电平,在当前数据传输结束时阻断下一次的数据发送。
nRTS: 发送请求,若是低电平,表明USART准备好接收数据
(表) USART引脚配置
[编辑] 寄存器
一个状态寄存器(USART_SR)
一个数据寄存器(USART_DR)
三个控制寄存器(USART_CR1,USART_CR2,USART_CR3)
一个波特率寄存器(USART_BRR)
一个智能卡模式下的保护时间寄存器(USART_GTPR)
关于以上寄存器中每个位的具体定义,请参考USART寄存器描述。
[编辑] 控制逻辑
发送控制
接收控制
时钟控制
硬件流控制
波特率控制(发送器和接收器)
中断控制
唤醒单元
[编辑] USART寄存器描述
下表列出了USART寄存器的地址映射和复位值。可以以半字(16位)或字(32位)的方式访问这些外设寄存器。
[编辑] USART_SR(Status register)状态寄存器
rc_w0:软件可以读此位,也可以通过写’0’清除此位,写’1’对此位无影响。
位31:10 保留位,由硬件强制为0
位9 CTS:CTS 标志
如果设置了CTSE位,当nCTS输入状态变化时,该位由硬件置’1’。由软件清’0’(向该位写’0’)。如果USART_CR3寄存器中的CTSIE = 1,则产生中断。
0:nCTS状态线上没有变化;
1:nCTS状态线上发生变化。
在UART4和UART5上,该位不可用。
位8 LBD:LIN断开检测标志
当检测到LIN断开时,该位由硬件置’1’。由软件清’0’(向该位写’0’)。如果USART_CR2寄存器中的LBDIE = 1,则产生中断。
0:没有检测到LIN断开;
1:检测到LIN断开。
注意:若LBDIE=1,当LBD = 1时产生中断。
位7 TXE:发送数据寄存器(TDR)空
当TDR寄存器中的数据被转移到移位寄存器时,该位由硬件置’1’。如果USART_CR1寄存器中的TXEIE = 1,则产生中断。写USART_DR寄存器,将该位清’0’。
0:数据还没有被转移到移位寄存器;
1:数据已经被转移到移位寄存器。
注意:该位被用在单缓冲发送中。
位6 TC:发送完成
当包含有数据的一帧发送完成后,并且TXE=1时,该位由硬件
原创力文档


文档评论(0)