stm32F103 串口中断接收和发送(不定长度)

       上一篇“stm32L431 串口中断接收和发送(不定长度)”文章写后,想想还是把“stm32F103 串口中断接收和发送(不定长度)”也写一下,想法和做法与上一篇完全一致,只是“stm32L431” 与“stm32F103”串口相关寄存器略有差异

      主导思想是:

         1、用STM32CubeMX完成IO口串口初始化。

         2、用串口相关寄存器直接操作替代HAL库(本人不喜欢也不太懂HAL库)调用。

         3、支持printf()函数

         4、串口中断

         接收中断:只负责将接收到的数据存入“接收输入指针”指向的接收缓冲区数组,同时置“接收完成标志”“接收输入指针”加1。在主程序中从接收缓冲区数组读接收数据时“接收输出指针”加1,当“接收输出指针”等于“接收输入指针”时清“接收完成标志”

         发送中断:如果“发送输出指针”指向的发送缓冲区数组有待发送数据就发送,同时清”接收完成标志““发送输出指针”加1 。没有待发送数据(“发送输出指针”等于“发送输入指针”)置“发送完成标志"。在主程序中发送数据时,将待发送数据写入“发送输入指针”指向的发送缓冲区,同时”清”发送完成标志“同时允许发送中断。

    具体操作:

 1、由STM32CubeMX生成Keil工程“STM32F103_TEST”

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值