蓝桥杯嵌入式十五届模拟二(串口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显示

相关推荐
xuxie9910 小时前
start9 霍尔双相编码器
单片机
兆龙电子单片机设计10 小时前
【STM32项目开源】STM32单片机语音分类垃圾桶-蓝牙APP
stm32·单片机·嵌入式硬件·物联网·开源·自动化·毕业设计
零涂毕业设计11 小时前
毕业设计模块开发-OLED显示屏(IIC协议0.96寸)STM32 ESP32 FPGA Linux驱动免费分享
linux·stm32·单片机·嵌入式·esp32·fpga·oled
叩码以求索11 小时前
浅谈:算法萌新如何高效刷题应对面试(一)
算法·面试·职场和发展
谙弆悕博士12 小时前
信息系统项目管理师教程(第4版)笔记——第 2 章 信息技术发展
笔记·职场和发展·软考高级·软考·高项·项目经理
ye1501277745512 小时前
220V转5V1A隔离芯片WT5602
单片机·嵌入式硬件·其他·硬件工程
ye1501277745514 小时前
DC24V-100V转3.3V500mA隔离芯片WT5602
单片机·嵌入式硬件·其他·硬件工程
Lumos6fly14 小时前
51单片机从零到实战(15)——数字时钟温度计
单片机·嵌入式硬件·51单片机
wdfk_prog15 小时前
嵌入式面试真题第 13 题:单硬件 Timer 下的高精度多路软件定时器架构设计
c语言·开发语言·面试·职场和发展·嵌入式
龙虾PRO17 小时前
能源与股票量化核心差异,AI全链路落地实操手册
java·面试·职场和发展