STM32自学笔记之串口通信(USART)
2015-05-30 20:22
190 查看
之前写过一次,哎,因为装系统把内容一不小心给删完了,我花费了这么长时间写的东西,瞬间啥都没有了,算了就当复习复习以前的知识吧。
今天又在重新写了一次USART(串口通信),感觉还行,就是对这个东西,还有点模糊,他到底是个什么东西,干什么用的,什么时候能用到它,难道它就是个简单的串口通信吗?它还有其他的什么功能等等一系列的问题,我感觉这是我至今为啥还是对STM32模糊的原因,就是在学习每个寄存器、控制器的时候有好多模糊的地方,但又不知道具体模糊在那个地方,导致现在我STM32的理解还存在很大的问题,这些还得以后慢慢去体会,慢慢地去理解。
简单的说一下我对USART的编程的认识以及在编程中所遇到的问题和值得注意的地方,首先值得注意的是RCC的设置,STM32的结构决定的用任何一个外设,就必须设置相应的使能时钟,其实USART的编程挺简单的,就是直接调用库函数就行了,按照固件库手册,对函数参数进行设置就行了。但须注意波特率的设置以及串口助手上的波特率设置的一致性。否则会出现乱码,还有在函数体的最后别忘加while(1)循环体,如不加此循环体,在串口助手上打印出要输出的字符时,会在后面多一个乱码的字符(具体怎么回事,我也不知道)。除此之外,就是printf的重定向,据刚刚学到知识说,在STM32的标准库函数中默认的输出设备是显示器,要实现串口或LCD输出,必须重定向标准库函数里调用的与输出设备相关的函数,这样才能让输出的函数打印在串口助手上,在使用printf时,不要忘记勾选Use
MicroLIB这个选项,还有不要忘记去包含<stdio.h>这个头文件,还有串口接收上,野火程序上用的是中断,我也尝试过不用中断的方法,但是不是很理想,还是中断比较好,在搞中断的时候,让我知道了NVIC(嵌套向量中断控制器),这个东西,它就是规章制度,规定响应优先级、从优先级、开启USART1的全局中断等等一系列的设置。以上就复习USART时,所遇见的问题以及自己觉得值得注意的地方,其它的也没有什么了,在以后的学习过程中,如在了解到相关知识,再在那里做补充。
今天又在重新写了一次USART(串口通信),感觉还行,就是对这个东西,还有点模糊,他到底是个什么东西,干什么用的,什么时候能用到它,难道它就是个简单的串口通信吗?它还有其他的什么功能等等一系列的问题,我感觉这是我至今为啥还是对STM32模糊的原因,就是在学习每个寄存器、控制器的时候有好多模糊的地方,但又不知道具体模糊在那个地方,导致现在我STM32的理解还存在很大的问题,这些还得以后慢慢去体会,慢慢地去理解。
简单的说一下我对USART的编程的认识以及在编程中所遇到的问题和值得注意的地方,首先值得注意的是RCC的设置,STM32的结构决定的用任何一个外设,就必须设置相应的使能时钟,其实USART的编程挺简单的,就是直接调用库函数就行了,按照固件库手册,对函数参数进行设置就行了。但须注意波特率的设置以及串口助手上的波特率设置的一致性。否则会出现乱码,还有在函数体的最后别忘加while(1)循环体,如不加此循环体,在串口助手上打印出要输出的字符时,会在后面多一个乱码的字符(具体怎么回事,我也不知道)。除此之外,就是printf的重定向,据刚刚学到知识说,在STM32的标准库函数中默认的输出设备是显示器,要实现串口或LCD输出,必须重定向标准库函数里调用的与输出设备相关的函数,这样才能让输出的函数打印在串口助手上,在使用printf时,不要忘记勾选Use
MicroLIB这个选项,还有不要忘记去包含<stdio.h>这个头文件,还有串口接收上,野火程序上用的是中断,我也尝试过不用中断的方法,但是不是很理想,还是中断比较好,在搞中断的时候,让我知道了NVIC(嵌套向量中断控制器),这个东西,它就是规章制度,规定响应优先级、从优先级、开启USART1的全局中断等等一系列的设置。以上就复习USART时,所遇见的问题以及自己觉得值得注意的地方,其它的也没有什么了,在以后的学习过程中,如在了解到相关知识,再在那里做补充。
相关文章推荐
- 遇到 /*+ SYS_DL_CURSOR */ 这个hint
- 分布式进阶(十一) Docker 常见错误汇总
- 软件测试 - 接口测试简介
- windows form窗体应用程序,建一个记事本参考代码,重点是打开,保存,另存为
- Intent详解
- 队列(二):顺序存储队列
- House Robber II
- 凯云水利水电造价工程系统( 四) 人工单价模块
- 象棋将帅问题
- C语言实现原码补码输出
- Linux内核中的Kconfig、Makefile、.config
- Lua中的线程和状态
- Intent详解
- 第一天 信手拈来无意句-ThinkPHP手把手快速拼接网站(一)
- 【学习笔记】【C语言】变量
- 项目前端技术-learn
- bzoj2795
- textField知道多少
- 自定义View(加载Xib方式)
- 如果看了此文你还不懂傅里叶变换,那就过来掐死我吧【完整版】