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

相关推荐
项目題供诗2 小时前
51单片机入门(八)
单片机·嵌入式硬件·51单片机
羽获飞2 小时前
从零开始学嵌入式之STM32——9.STM32的时钟系统
stm32·单片机·嵌入式硬件
来自晴朗的明天4 小时前
13、NMOS 电源防反接电路
单片机·嵌入式硬件·硬件工程
HY小宝F4 小时前
职场沟通的深层智慧:从对抗到协作的自我修炼
职场和发展
芯岭技术4 小时前
PY32MD310单片机:高性能、低功耗的32位电机控制微控制器
单片机·嵌入式硬件
AI职业加油站5 小时前
职业提升之路:我的大数据分析师学习与备考分享
大数据·人工智能·经验分享·学习·职场和发展·数据分析
_OP_CHEN5 小时前
【算法基础篇】(五十六)容斥原理指南:从集合计数到算法实战,解决组合数学的 “重叠难题”!
算法·蓝桥杯·c/c++·组合数学·容斥原理·算法竞赛·acm/icpc
小龙报6 小时前
【51单片机】深度解析 51 串口 UART:原理、配置、收发实现与工程化应用全总结
c语言·开发语言·c++·stm32·单片机·嵌入式硬件·51单片机
草履虫建模12 小时前
力扣算法 1768. 交替合并字符串
java·开发语言·算法·leetcode·职场和发展·idea·基础