蓝桥杯嵌入式十五届模拟二(串口DMA,占空比的另一种测量方式)

一.LED

先配置LED的八个引脚为GPIO_OutPut,锁存器PD2也是,然后都设置为起始高电平,生成代码时还要去解决引脚冲突问题

二.按键

按键配置,由原理图按键所对引脚要GPIO_Input

生成代码,在文件夹中添加code文件夹,code中添加fun.c、fun.h、headfile.h文件,去资源包中把lcd.c、lcd.h、fonts.h添加到code中,然后去写按键控制灯亮灭的程序,看是否有问题

按键控制led没有问题后写lcd显示代码,显示没问题后,解决lcd与led引脚冲突问题,方法在我的其他文章中CSDN

HAL_GPIO_WritePin (GPIOD,GPIO_PIN_2,GPIO_PIN_RESET ); //为解决引脚冲突初始化lcd时 LCD_Init (); 要将锁存器锁存器来;

LCD_Clear (Black);

LCD_SetBackColor(Black);

LCD_SetTextColor(White);

三.LCD显示函数

void lcd_show(void)

{

sprintf(text," hello world");

LCD_DisplayStringLine (Line0 ,(uint8_t *)text);

}

四.显示功能

四.ADC(电压)功能

adc配置不需要中断

五.PWM输出(不用中断,需时钟源,有易错点)

PWM输出初始化时需要给CCR赋值,不然没有频率输出

六.按键功能

B1按键

B2B3按键

睡眠界面下按键

进入睡眠模式

七.串口功能(有小问题)

本次串口使用DMA

先设置波特率和异步通信,修改引脚

启用DMA功能

开启中断,之后生成代码

找串口接收函数,这里使用的函数与其他函数所在地方不同,注意查看位置

在文件中找到串口接收回调函数,写串口服务函数

复制代码
void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size);

写好之后写一个串口接收处理函数,用于判断接收的字符是否是题目要求的,是去执行要求的功能语句

八.PWM功能

占空比的另一种测量方式

假设我们用PA6去捕获PWM,PA6引脚用的是TIM3 CH1,配置过程和正常的捕获配置一样,只是main函数中的时候额外打开一个通道二

占空比就在回调函数里计算了,我们配置的时候是CH1,计算频率除的捕获值还是用CH1通道捕获的值,计算占空比的时候就用通道二的除通道一的。

乘100.0是计算的结果转成小数,%。

九.脉冲输出

方波的占空比就是50%

频率的改变除了可以改变ARR还可以改变PSC,改变PSC是可以直接改变的,ARR是不行的

用TIM8来做定时器

十.led显示

相关推荐
richxu202510016 小时前
学完了江科大STM32,下一步该怎么学?
stm32·单片机·嵌入式硬件·学习
Deitymoon6 小时前
STM32——SPI通信
stm32·单片机·嵌入式硬件
linbaiwan6667 小时前
内置VDD稳压管减少外围元件的三款LED驱动芯片集成度
单片机·嵌入式硬件
Raink老师7 小时前
【AI面试临阵磨枪-62】设计基于 RAG 的内部知识库问答平台(多租户、权限、文件上传、实时更新)
人工智能·面试·职场和发展
三品吉他手会点灯8 小时前
STM32F103 学习笔记-21-串口通信(第6节)-串口发送命令控制RGB灯
笔记·stm32·单片机·嵌入式硬件·学习
yongui478349 小时前
水表集中抄表器单片机实现方案
单片机·嵌入式硬件
我爱cope9 小时前
【Agent智能体6 | 智能体AI评估】
人工智能·职场和发展
我爱cope10 小时前
【Agent智能体5 | 任务分解:识别工作流中的步骤】
人工智能·职场和发展
iCxhust12 小时前
8086 Proteus 8253制作跑表
单片机·嵌入式硬件·proteus·微机原理·8088单板机
xiangw@GZ12 小时前
HDI 高密度互连板阶数的深度理解
服务器·单片机·嵌入式硬件