STM32F103单片机学习笔记(3):串口

发布者:SparklingSoul最新更新时间:2024-05-09 来源: elecfans关键字:STM32F103  单片机  串口 手机看文章 扫描二维码
随时随地手机看文章

关于串口,基础的应该都知道,波特率,校验位,停止位,双向通信接收端连接发送端,发送端连接接收端,两个不同设备通信的时候要共地。485、232、422都是由串口驱动的,只是他们的传输电平不一样。经过了前面IO口的设置以及中断的配置之后,感觉再驱动中断普通的接收和发送就没有那么的吃力了,关于复杂的用法设置我这里就不总结了。这里要注意的是USART1应用的是APB2时钟,USART2、USART3、UART4、UART5应用的是APB1时钟。

图片

继续看给我们的库函数,这一个涉及到的库函数是与串口相关的库函数stm32f10x_usart.c

图片

图片

对于串口,它在接收和发送的时候也可以设置为中断,这样就应用到我们之前的设置方法。这里我以设置串口为普通的发送,接收为外部中断,接收之后进行发送为例进行总结。下面是串口编写的流程图。

图片

根据流程图一步步进行设置。

1、设置系统时钟

图片

2、设置与串口相关的IO口

图片

包括时钟,输入输出设置

3、对串口的初始化

图片

这里没有重应设和复用的设置,设置好了就可以直接用了。

4、设置接收为接收中断

图片

5、设置串口中断,并设置优先级

图片

6、开启串口

图片

7、编写中断服务函数

如果接受到了数据就将数据发送出去

图片

8、关联中断服务与中断响应函数

在stm32f10x.h中添加函数void UART_TRxOver_Interrupt(void);在stm32f10x.c的串口中断入口中添加UART_TRxOver_Interrupt();

图片

这样中断就可以用了。

9、发送数据

在主函数中可以调用函数来发送一个字节的数据,但是如果发送快了就会出现乱码,这是因为数据还没有发送完又要发送下一位,所以导致出现乱码,这么时候可以调用函数监测是否发送完成,如果发送完成则跳出函数。所以我对发送字节的函数进行了重新封装。

图片

后面也可以封装成发送字符串的函数。

图片

好了,今天就总结在这里了。


关键字:STM32F103  单片机  串口 引用地址:STM32F103单片机学习笔记(3):串口

上一篇:STM32F103单片机学习笔记(5):DMA
下一篇:STM32F407开发板DS18B20应用案例

小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京ICP证060456号 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved