第九篇 串口实验-ALIENTEK 战舰STM32开发板.pdfVIP

第九篇 串口实验-ALIENTEK 战舰STM32开发板.pdf

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
ALIENTEK 战舰STM32开发板 第九章 串口实验 前面两章介绍了STM32 的IO 口操作。这一章我们将学习STM32 的串口,教大家如何使 用STM32 的串口来发送和接收数据。本章将实现如下功能:STM32 通过串口和上位机的对话, STM32 在收到上位机发过来的字符串后,原原本本的返回给上位机。本章分为如下几个小节: 9.1 STM32 串口简介 9.2 硬件设计 9.3 软件设计 9.4 下载验证 163 ALIENTEK 战舰STM32开发板 9.1 STM32 串口简介 串口作为MCU 的重要外部接口,同时也是软件开发重要的调试手段,其重要性不言而喻。 现在基本上所有的MCU 都会带有串口,STM32 自然也不例外。 STM32 的串口资源相当丰富的,功能也相当强劲。ALIENTEK 战舰STM32 开发板所使用 的STM32F103ZET6 最多可提供5 路串口,有分数波特率发生器、支持同步单线通信和半双工 单线通讯、支持LIN 、支持调制解调器操作、智能卡协议和IrDA SIR ENDEC 规范、具有DMA 等。 5.3 节对串口有过简单的介绍,大家看这个实验的时候记得翻过去看看。接下来我们将主要 从库函数操作层面结合寄存器的描述,告诉你如何设置串口,以达到我们最基本的通信功能。 本章,我们将实现利用串口1 不停的打印信息到电脑上,同时接收从串口发过来的数据,把发 送过来的数据直接送回给电脑。战舰STM32 开发板板载了1 个USB 串口和1 个RS232 串口, 我们本章介绍的是通过USB 串口和电脑通信。 在4.4.1 章节端口复用功能已经讲解过,对于复用功能的IO ,我们首先要使能GPIO 时钟, 然后使能复用功能时钟,同时要把GPIO 模式设置为复用功能对应的模式(这个可以查看手册 《STM32 中文参考手册V10》P110 的表格“8.1.11 外设的GPIO 配置”)。这些准备工作做完之后, 剩下的当然是串口参数的初始化设置,包括波特率,停止位等等参数。在设置完成只能接下来 就是使能串口,这很容易理解。同时,如果我们开启了串口的中断,当然要初始化NVIC 设置中 断优先级别,最后编写中断服务函数。 串口设置的一般步骤可以总结为如下几个步骤: 1) 串口时钟使能,GPIO 时钟使能 2) 串口复位 3) GPIO 端口模式设置 4) 串口参数初始化 5) 开启中断并且初始化NVIC (如果需要开启中断才需要这个步骤) 6) 使能串口 7) 编写中断处理函数 下面,我们就简单介绍下这几个与串口基本配置直接相关的几个固件库函数。这些函数和 定义主要分布在stm32f10x_usart.h 和stm32f10x_usart.c 文件中。 1.串口时钟使能。串口是挂载在APB2 下面的外设,所以使能函数为: RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1) ; 2. 串口复位。当外设出现异常的时候可以通过复位设置,实现该外设的复位,然后重新配置 这个外设达到让其重新工作的目的。一般在系统刚开始配置外设的时候,都会先执行复位该外 设的操作。复位的是在函数USART_DeInit() 中完成: void USART_DeInit(USART_TypeDef* USARTx); 比如我们要复位串口1,方法为: USART_DeInit(USART1); //复位串口1 3. 串口参数初始化。串口初始化是通过USART_Init() 函数实现的, void USART_Init(USART_TypeDef* USARTx, USART_InitTypeDef* USART_InitStruct) ; 这个函数的的第一个入口参数是指定初始化的串口标号,这里选择USART1 。 第二个入口参数是一个USART_InitTypeDef 类型的结构体指针,这个结构体指针的成员变量用 来设置串口的一些参数。一般的实现格式为: USART_InitStructure.USART_BaudRate = bound; //一般设置为9600; 164 ALIENTEK 战舰STM32开发板 USART_InitStructure.USART_Wor

文档评论(0)

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

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

1亿VIP精品文档

相关文档