蓝桥杯省赛

一 在产品手册中找到原理图


二 在底层文件夹中的Src和Inc中bsp中创建bsp_usart.c和 bsp_usart.h

三 在scourse中打开cobmex并通过与原理图配置引脚
PA9 PA10 (分别usart_RX usart_Tx)


1.芯片设置

2.uart设置(在参数设置页面只改异步和波特率9600,其它默认)

3.NVIC设置(勾上中断)

image.png


4.GPIO默认不用修改
四 打开test中MDK项目添加文件(注意.h路径是否需要添加)完成后进行以下操作
1.在bsp_led_key.c和main.c中分别添加#include "usart/bsp_usart.h"后编译

image.png

image.png



2.编译成功后在bsp_led_key.h中导入main.h

image.png


3.将scourse中usart.c 中生成的初始化函数复制到test的bsp_usart.c中(一共两个函数,第三个不要)

image.png

image.png


4.打开一些其他相关配置
A 添加底层
(“品”-Drivers\STM32G4xx_HAL_Driver\Src\....uart.c|uart_ex.c)

image.png






B 在stm32g4xx_hal_conf打开相应配置
在main.c 中连进三个,最后打开相应的宏定义





五 在uart中主函数是多了一些内容的,需要在源文件中进行粘贴至rcc中
1.粘贴外设时钟部分

2.在时钟函数中添加外设的结构体定义

五 在main.c中调用uart 模块进行初始化

八 定义变量已经对子函数进行声名

九 在while循环中调用子函数

十 写uart发送子函数
1.定义减速函数打点名

2.开始写串口处理子函数(发送)

3.具体子函数代码
十一 uart接收子函数
1.定义接收缓冲区

2.打开串口中断
参数一 :中断口 参数二 :放到那个地方 参数三 :一次接受几个字节数据
注意:参数一和参数二都要有取地址符

4. 打开中断后需要进行配置
a.进入源文件...it.c中找到串口中断处理函数

b.在test文件...it.c中将串口中断函数粘贴进去

注意:这个时候会用到huar1句柄结构体,这个时候可以将串口头文件放进...it.c

5. 串口中断函数执行成功后会调用回掉函数
补充:因为回调函数是一个弱函数,重写后会覆盖
名字可以在底层文件 hal_uart.h中寻找
6. 写回调函数

回调函数暂时这样写,灯会亮但是不会灭(代表低调定时器的终端优先级分组小于串口中断优先级)
这个时候需要调整优先级
a. 串口优先级在串口.c 中的最后,将第二个值改为1

b.系统滴答定时器优先级

6

-主函数进入HAL-INIT

6

-在滴答定时器分组下面

6

-找到初始化参数

6

-修改值



7.优化回调函数
-方式1 将接收到的数据再次发送出去

-方式2 每四个字节进入一次中断(改变来变量大小 改接收数据的字节数)


8 .具体回掉函数代码
 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值