您的位置:首页 > 其它

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时,所遇见的问题以及自己觉得值得注意的地方,其它的也没有什么了,在以后的学习过程中,如在了解到相关知识,再在那里做补充。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: