当前位置: 首页 > article >正文

蓝桥杯省赛模板构建——uart

打开CubeMX

串口的发送是跟调试器放一起的,通过PA9和PA10来接收发送

选择异步通讯

波特率配置为9600

打开串口中断,因为单片机接收数据需要用到中断

生成代码

添加底层驱动代码

打开在main.h打开uart定义

uart时钟配置,由于uart是用PCLK时钟,所以在bsp_rcc.c中需要添加PCLK时钟初始化

复制串口初始化代码并在main.c和bsp_uart.h里声明

测试:单片机发送数据给电脑,电脑用串口小助手接收数据

句柄结构体定义

编写串口处理函数Uart_Proc();并在主函数中声明

定义变量str来保存发送的数值,counter用来计数,每过一秒发送hello:counter值

搜索关键词Transmit在uart底层驱动库里查找

HAL_UART_Transmit(串口几, 发送的内容, 内容字长, 多久发送完)

打开串口小助手,配置好串口几(在设备管理器里查看)和波特率9600

测试:电脑发送数据给单片机,单片机接收数据

当电脑给单片机发送数据时,就会产生串口中断,所以要进入it.c并且调用中断回调函数

找到源码里的串口中断函数

在it.c里声明uart.h文件,这样就能使用huart1拓展变量

编写中断回调函数,回调函数一般在底层.h库里最下端

当电脑通过串口助手发送数据给单片机时,LED全亮->延时500毫秒->LED全灭

当我们发送完一次数据时发现LED灯没亮,因为滴答定时器的中断优先级低于串口的中断优先级

修改滴答定时器中断优先级为0(最高级)

main.c->HAL_Init();->TICK_INT_PRIORITY

在uart.c里修改串口中断优先级为1(低于滴答定时器)

完成串口中断接收测试

整合串口的中断与接收

当我们用电脑点击发送数据时,单片机接收数据并执行以下代码,灯由亮到灭并在串口助手输出数据


http://www.kler.cn/a/232550.html

相关文章:

  • 华为机试HJ41 称砝码
  • 万字长文解读深度学习——生成对抗网络GAN
  • ES6字符串的新增方法
  • LeetCode题解:5.最长回文子串【Python题解超详细,中心拓展、动态规划、暴力解法】
  • 企业一站式管理系统odoo的研究——PLM插件的搭建
  • 微服务即时通讯系统的实现(客户端)----(1)
  • 告别mPDF迎来TCPDF和中文打印遇到的问题
  • 【数据分享】1929-2023年全球站点的逐年平均风速(Shp\Excel\免费获取)
  • C#用Array类的FindAll方法和List<T>类的Add方法按关键词在数组中检索元素并输出
  • 【专业技术】高效并行分布式深度学习策略,助力模型训练与量化
  • 戴上HUAWEI WATCH GT 4,解锁龙年新玩法
  • 拦截器配置,FeignClient根据业务规则实现微服务动态路由
  • 什么是API
  • C#系列-数据结构+递归算法+排序算法(3)
  • 网络安全产品之认识准入控制系统
  • 力扣面试题 05.06. 整数转换(位运算)
  • Springboot 整合 Elasticsearch(三):使用RestHighLevelClient操作ES ①
  • 神经网络 | 基于 CNN 模型实现土壤湿度预测
  • re:从0开始的CSS学习之路 8. 浏览器默认样式
  • CleanMyMac2024智能算法有哪些优点和缺点?
  • Qt PCL学习(文章链接汇总)
  • C#,聚会数(相遇数,Rencontres Number)的算法与源代码
  • 火星文:网络时代下的语言
  • c实现链表
  • Ubuntu文件系统结构
  • Docker的镜像和容器的区别