一个菜鸟的STM32寄存器学习笔记3_串口查询收发.pdf

一个菜鸟的STM32寄存器学习笔记3_串口查询收发.pdf

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

原本学习串口和前面的GPIO 区别在于多了两个寄存器而已,但是在程序运行时 STM32 只发送00 到电脑显示。这个问题自己查,问朋友,发帖子问都没有找到问题所 在。后来查看示例代码,发现多了一个SYSTEM_INIT 的函数。后来一想对哦,系统时钟都 没有,使用STM32 之前是需要先配置系统时钟的。在 中有对系统 时钟的初始化函数void SystemInit (void) 。这个函数在启动文件 中 是调用运行的。但是刚开始学习STM32 时由于编译错误可能会把方框中的三句给注释掉, 这样就不能调用初始化函数了 当我把这三句注释掉的语句还原后程序就正常了。(注:我从库文件中赋值了两个C 文件及 其对应的.h 文件和一个.S 的启动文件如下图)。慢慢的要学会STM32 的时钟树。并且会配 置系统时钟实现重写SystemInit 函数 暂时找出了程序出现的异常的原因,下面就开始实现串口功能 通过前面的 GPIO 的学习我们知道一个规律:想要使用 STM32 的外设分为以下几步,先配置 相应外设时钟,配置对应管脚,配置相关外设工作模式并使能。使用功能; 要想使用串口实现收发数据配置方法如下: 1. 使能串口1 时钟 RCC-APB2ENR 2. 使能串口1 对应的引脚(PA9_RX,PA10_TX) RCC-APB2ENR 3. 配置串口1 对应的引脚的工作模式 GPIOA-CHR 4. 复位串口1 RCC-APB2RSTR 5. 停止复位串口1 RCC-APB2RSTR 6. 配置串口1 波特率,USART1-BRR 7. 起始位,数据长度,校验位,结束位) USART1-CR1 8. 接收或者发送数据USART1-DR 9. 读取串口1 状态,清除标志位USART1-SR 第一步 使能串口时钟 串口1 的时钟是通过RCC-APB2ENR 来使能的 这里和前面GPIO 的开启方法是一样的,就是给位14 置1 就好 RCC-APB2ENR |=0X4000; 第二步 使能串口1 对应引脚 我们用的串口 1 对应哪个引脚在 文档中的引 脚说明那章有详细说明。我们使用的是最简单的RX 和TX 如图TX 发送时对应的PA9,RX 接收是对应的PA10。再在中文参考手册中第8 章查到如下表 格 结合上面两个表格可以知道引脚配置: PA9推挽复用输出 PA10浮空输入或带上拉输入 配置如下 GPIOA 使用需要先配置时钟 RCC-APB2ENR|=0X0004; 按照上表配置PA10,PA9 功能 GPIOA-CRH=0XFFFFF00F; GPIOA-CRH|=0X000004B0;//PA10 浮空输入 PA9 推挽复用输出 第三步 复位串口 复位外设串口1 的寄存器是使用RCC-APB2RSTR 根据表格向位14 写1 复位写0 停止复位 RCC-APB2RSTR|=0x4000; //复位串口1 RCC-APB2RSTR=0xbfff;//停止复位 第四步 配置串口波特率 我们知道串口都需要配置波特率而STM32 中的波特率是通过USART1-BRR 来设置的 第一次看到这个寄存器是有点头晕的一个寄存器还分成整数和小数。看到了下面的示例才有 点明白 这个公式是通过波特率来计算 例如 要设置波特率为9600 已知fck 为72MHz ,波特率为9600 则 USARTDIV9600/16=468.75 (此处是浮点计算不是取整计算) 整数,小树分别转换成16 进制 468-》0x1D4 0.75*16=12-》C (*16 是因为10 进制小数转16 进制是乘以16 取整) 所以寄存器USART1-BRR 的低4 位写入C,15~4 写入1D4

您可能关注的文档

文档评论(0)

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

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

1亿VIP精品文档

相关文档