❤️ 专栏简介:本专栏记录了从零学习单片机的过程,其中包括51单片机和STM32单片机两部分;建议先学习51单片机,其是STM32等高级单片机的基础;这样再学习STM32时才能融会贯通。
☀️ 专栏适用人群 :适用于想要从零基础开始学习入门单片机,且有一定C语言基础的的童鞋。
专栏目标:实现从零基础入门51单片机和STM32单片机,力求在玩好单片机的同时,能够了解一些计算机的基本概念,了解电路及其元器件的基本理论等。⭐️ 专栏主要内容: 主要学习STM32单片机的功能、各个模块、单片机的外设、驱动等,最终玩好单片机和单片机的外设,全程手敲代码,实现我们所要实现的功能。
专栏说明 :如果文章知识点有错误的地方,欢迎大家随时在文章下面评论,我会第一时间改正。让我们一起学习,一起进步。
专栏主页:http://t.csdn.cn/HCD8v
本学习过程参考:https://space.bilibili.com/383400717
STM3单片机安装软件、各种资料以及源码的路径:
链接:https://pan.baidu.com/s/1snD0uuTfMhchFqOMWvAiHA?pwd=asdf#list/path=%2F
提取码:asdf
链接里压缩包的解压密码:32
本大节主要学习USART的相关知识,包含九小节:
第一小节主要学习USART串口协议的理论基础知识
第二小节主要学习USART串口外设的理论基础知识
第三小节是对第一、二小节的内容写一个串口发送程序进行练习
第四小节是对第一、二小节的内容再写一个串口发送+接收的程序进行练习
第五小节主要学习USART串口数据包的理论基础知识
第六小节是对第五小节的内容写一个串口收发HEX数据包程序进行练习
第七小节是对第五小节的内容再写一个串口收发文本数据包程序进行练习
第八小节主要了解MyMcu串口下载的知识
第八小节主要了解STLINK Utility串口下载的知识
最终附上所有的源代码;
本小节主要学习USART串口外设的理论基础知识。
直接读写数据寄存器,就能自动发送和接收数据了
;TXE标志位
就会被置1,我们就可以写入新的数据了;然后发送移位寄存器就会在发送器控制的驱动下,向右移位,然后一位一位地把数据输出到TX引脚;当接收寄存器接收完一个数据,这一个数据就会一下子转移到接收数据寄存器RDR里,在转移过程中,也会置一个标志位,叫RXNE
(RX Not Empty),接收数据寄存器非空;当我们检测到RXNE置1后,就可以把数据读走了;波特率发生器
,用于产生约定的通信速率;时钟来源是PCLK2或1;经过波特率发生器分频后,产生的时钟通向发送控制器和接收控制器;发送控制器
和接收控制器
用来控制发送移位和接收移位;发送数据寄存器
和发送移位寄存器
这两个寄存器的配合,将数据一位一位的移出去,通过GPIO的复用输出,输出到TX引脚;产生串口协议规定的波形;图中在发送移位寄存器那里画了移位的符号>>
,代表这个移位寄存器是往右移的,是低位先行;当数据由移位寄存器转到移位寄存器时,TXE
(TX Empty)标志位被置1;我们判断这个TXE标志位
就可以知道是不是可以写下一个数据了;接收移位寄存器
,这里画了右移的符号>>
,也是右移的,因为是低位先行,所以要从左边开始移进来,移完一帧数据后,数据就会统一运转到接收数据寄存器
;在转移的同时,置一个RXNE
(RX Not Empty)标志位;我们检查这个标志位,就可以直到是不是接收到数据了;同时这个标志位也可以去申请中断,这样就可以在收到数据时,直接进入中断函数,然后快速的读取和保存数据;0.5
、1
、1.5
、2
这四种,这四种参数的区别就是停止位的时长不一样;各自对应的波形如上图所示;我们一般选择1个长度;