STM32单片机串口实验概述.pptVIP

  1. 1、本文档共25页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ALIENTEK * ALIENTEK * STM32串口实验 具体实例分析 3 串口的配置使用 2 STM32串口介绍 1 * 蔡兴广 串行接口简称串口,也称串行通信接口或串行通讯接口(通常指COM接口),是采用串行通信方式的扩展接口。 在STM32的参考手册中,串口被描述成通用同步异步收发器(USART),它提供了一种灵活的方法与使用工业标准NRZ异步串行数据格式的外部设备之间进行全双工数据交换。USART利用分数波特率发生器提供宽范围的波特率选择。它支持同步单向通信和半双工单线通信,也支持LIN(局部互联网),智能卡协议和IrDA(红外数据组织)SIR ENDEC规范,以及调制解调器(CTS/RTS)操作。它还允许多处理器通信。还可以使用DMA方式,实现高速数据通信。 STM32串口介绍 1 USART通过3个引脚与其他设备连接在一起 RX:?接受数据串行输入。通过过采样技术来区别数据和噪音,从而恢复数据。 TX:?发送数据输出。当发送器被禁止时,输出引脚恢复到它的I/O端口配置。当发送器被激活,并且不发送数据时,TX引脚处处于高电平。在单线和智能卡模式里,此I/O口被同时用于数据的发送和接收。 STM32F103ZET6。利用的串口接口为COM1,常用2,3,5引脚,和电脑间的通信通过USB转串口线进行通讯。 串口的配置使用 2 一般有两种方式:查询和中断。 (1)查询:串口程序不断地循环查询,看看当前有没有数据要它传送。如果有,就帮助传送。 (2)中断:平时串口只要打开中断即可。如果发现有一个中断来,则意味着要它帮助传输数据——它就马上进行数据的传送。 如何工作? 如何配置? 串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能,GPIO 时钟使能 2) 串口复位 3) GPIO 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化 NVIC(如果需要开启中断才 需要这个步骤) 6) 使能串口 7) 编写中断处理函数 1、串口时钟使能。串口作为STM32的一个外设,其时钟由外设时钟使能寄存器控制,这里我们使用的串口1是在APB2ENR寄存器的第14位。除了串口1的时钟使能在APB2ENR寄存器,其他串口的时钟使能位都在APB1ENR。 RCC_APB2ENR RCC_APB1ENR 2、串口复位。当外设出现异常的时候可以通过复位寄存器里面的对应位设置,实现该外设的复位,然后重新配置这个外设达到让其重新工作的目的。一般在系统刚开始配置外设的时候,都会先执行复位该外设的操作。串口1的复位是通过配置APB2RSTR寄存器的第14位来实现的。APB2RSTR寄存器的各位描述如下: 3、串口波特率设置。每个串口都有一个自己独立的波特率寄存器USART_BRR,通过设置该寄存器达到配置不同波特率的目的。该寄存器的各位描述如下: 《STM32中文参考手册V10》P524 讲解了波特率和DIV_Mantissa以及 DIV_Fraction的计算公式: 故BRR设置为0X1D4C即可使得波特率设置为9600。 4、串口控制。STM32的每个串口都有3个控制寄存器USART_CR1~3,串口的很多配置都是通过这3个寄存器来设置的。这里我们只要用到USART_CR1就可以实现我们的功能了。 5、数据发送与接收。STM32的发送与接收是通过数据寄存器USART_DR来实现的,这是一个双寄存器,包含了TDR和RDR。当向该寄存器写数据的时候,串口就会自动发送,当收到收据的时候,也是存在该寄存器内。该寄存器的各位描述如下: 6、串口状态。串口的状态可以通过状态寄存器USART_SR读取。USART_SR的各位描述如下: 具体实例分析 3 依照以上步骤,在安富莱-V3的板子上以实现串口通信的实验。 1、 串口时钟使能: 串口是挂载在APB2下面的外设 RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1); 2、串口复位: 当外设出现异常的时候可以通过复位设置 void USART_DeInit(USART_TypeDef* USARTx) 对串口1复位方法为: USART_DeInit(USART1); 3 、串口参数初始化: 串口初始化是通过USART_Init()函数实现的,设置波特率、停止位、校验位、位长等。 void USART_Init(USART_TypeDef* USART

文档评论(0)

w5544434 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档