蓝桥杯嵌入式
文章平均质量分 56
蓝桥杯嵌入式
HAL库才是真神
嵌入式小白
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
2025年第16届蓝桥杯嵌入式竞赛学习笔记(十四):RTC实时时钟
进行闹钟A的配置,时分秒设为23、30、20,将Alarm Mask Date Week day 使能(闹钟响起时不考虑日期),配置完成后生成代码。点开参数配置,设置24小时计数法,Data Format选择二进制数据形式,下面三栏分别为小时、分钟、秒。首先开打CubeMX给配置的rtc.c文件,将第37、38行定义的两个结构体复制到使用处。打开Timers栏,点击RTC进入配置界面,将时钟源与日历使能,随后使能中断。当时间达到闹钟A设置的参数时,触发中断回调函数。使用闹钟中断的回调函数。原创 2025-04-19 17:12:54 · 457 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(十三):eeprom读写
eeprom为一种非易失性存储器,掉电后数据不会丢失。所以在程序里面我们经常会将要保存的变量存到eeprom中。查看产品手册,E1E2E3分别对应的是AT24C02设备地址的A0A1A2。最后一位为读写位,为1时是读,为0是写。主机要和从机通讯时,需知道从机的地址。查看AT24C02的数据手册的11页,有个设备地址。AT24C02为eeprom的一种型号。烧录完成后发现LCD屏上显示的50,即eeprom的第0个地址存储的数据。将赛点资源包中的i2c_hal.c和i2c_hal.h导入到工程中。原创 2025-02-25 10:50:27 · 940 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(十二):不定长数据接收
串口接收两个数据的间隔为1.04ms,在接收一个数据时让定时器的计数器清零,第二个也是如此,在后面接收每个数据的时候都让计数器清零。串口传输一次数据 包含起始位(1bit),数据位(8bit),结束位(1bit),一共10bit。当接收最后一个数据的时候,进行一次判断,如果时间大于1.04ms,那就说明它不会再有下一个数据发来了,也就意味着数据接收完成。这就需要我们考虑错误的情况,串口接收的特点为每次进入中断只能接收一个字节的数据,如果考虑错误的情况,那么有两种方法。编写串口接收的回调函数与接收判断函数。原创 2025-02-24 14:13:40 · 1756 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(十一):串口发送和接收
注:此方法需先在while(1)外执行一次HAL_UART_Receive_IT(&huart1, &rec_data, 1);打开USART1的配置界面,将模式改为Asynchronous(异步通信),波特率设为115200。微控制器是和USART1连接的,可以看到PA9与PA10就是USART1的TX与RX两个接口。将PA9与PA10引脚分别配置为USART1_TX和USART1_RX。烧录后查看串口助手,设置端口号与波特率。烧录后查看串口助手,点击手动发送。每秒通过串口发送字符串。原创 2025-02-24 12:26:09 · 721 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(十):ADC测量电压
VDD的最大值为3.3V,所以PB15测量电压值的范围为0~3.3V,然后它读取到的AD值为0~4096,所以电压测量公式为。烧录完成后,扭动开发板上的R37与R38旋钮,屏幕上的电压值变化随旋钮变化。将PB15引脚配置为ADC2_IN15,PB12配置为ADC1_IN11。打开ADC1的配置界面,找到IN11,选择Single ended模式。打开ADC2配置界面,将IN15-Single ended打勾。为什么是4096,因为ADC是一个12比特的。配置完成后点击右上角生成代码。原创 2025-02-23 19:19:22 · 1574 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(九):输入捕获测555定时器频率
本节测量两个555定时器所输出的PWM波的一个频率。原创 2025-02-23 18:42:24 · 719 阅读 · 1 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(八):输入捕获PWM频率
在上升沿产生时将CNT置0,在下一个上升沿的时候使用一个变量capture_value存储CNT的值。点开TIM17,激活一下,然后选择输入捕获模式,将PSC设为80-1。输入捕获的捕获在于PWM波上升沿(或下降沿)的时候会产生一个中断。CNT加1所耗的时间为(PSC + 1)/ 系统频率(80MHz)周期T实际就是波形两个上升沿之间的时间。这样的话就可以计算出这个周期T的值。这个就是我们最终计算频率的一个公式。写输入捕获的中断回调函数,代码如下。首先使用函数,使能输入捕获的中断。原创 2025-02-22 18:06:17 · 936 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(七):PWM输出
将通道2的模式设为产生PWM波,并按照频率公式,计算出ARR与PSC的值应设多少。(注:系统频率为80MHz,不懂可看第一章中的时钟树配置)首先使用函数使能TIM2_CH2的PWM模块。计算占空比公式,得出CCR的值应设多少。烧录完成后即可使用示波器,查看波形。将PA1引脚设为TIM2_CH2。配置完成后点击右上角生成代码。原创 2025-02-22 17:02:46 · 1434 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(六):使用定时器实现按键的长按短按
在STM32CubeMX界面选择TIM3时钟,Clock Source选择Internal Clock (内部时钟)主函数中初始化定时器TIM3:HAL_TIM_Base_Start(&htim3);看现象,短按B1B2按钮是count的变量+1和-1,长按B1B2时,count变量。修改Key_Scan函数,给Last_State置1防止刚进来就通过短按if。将烧录线一端连接至电脑的USB口,另一端连接至开发板的Download下载口。点击导航栏的全部编译,输出窗口显示0错误。连好之后点击烧录按钮。原创 2025-01-06 20:41:46 · 735 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(五):定时器中断
ARR:自动重装载值 PSC:预分频器 CNT:计数器 fsystem系统频率:80Mhz。主函数中先初始化定时器中断TIM2:HAL_TIM_Base_Start_IT(&htim2);将烧录线一端连接至电脑的USB口,另一端连接至开发板的Download下载口。NVIC Setting 勾选 TIM2的Enabled(定时器中断)新建timer.c文件编写HAL库的定时器中断回调函数。烧录完成后,LCD屏上的count变量每秒自动+1。和timer.h在headfile.h中引用一下。原创 2025-01-06 14:43:38 · 1027 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(四):驱动LCD屏幕
将赛点数据包中的lcd.h、lcd.c、font.h三个文件导入到项目中,并在headfile.h中引用。发现LED和LCD的部分引脚相同,这时候图中U1锁存器的作用就出来了,下面会讲如何解决引脚冲突的问题。烧录完成后,LCD屏亮起,显示对应的字符串,按下相应按键时Count的数值改变,并显示在LCD屏上。函数,在开头加temp变量暂存GPIOC的输出, 在末尾将temp再赋值给GPIOC的输出。修改上一章的key.c文件的内容,添加一个外部变量count。修改赛点数据包的lcd.c中的。原创 2025-01-05 20:38:40 · 1204 阅读 · 8 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(三):按键驱动LED
图形化配置,将PC8-PC15,PD2均设为GPIO_Output(输出模式),初始化高电平。PA0,PB0,PB1,PB2均设为GPIO_Input(输入模式)与上拉模式。将烧录线一端连接至电脑的USB口,另一端连接至开发板的Download下载口。最后更新每个按键的上一次状态为当前状态,以便下一次扫描时使用。由原理图看出,按键引脚为PA0,PB0,PB1,PB2。按键为上拉输入,按键没有按下时为高电平,按下时为低电平。烧录完成后,按相应的按键即可实现LED灯的亮灭功能。B1按键按下时,调用。原创 2025-01-05 17:33:02 · 850 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(二):点亮LED
使用第一章配好的STM32CubeMX和Keil5。原创 2025-01-04 22:00:30 · 2273 阅读 · 0 评论 -
2025年第16届蓝桥杯嵌入式竞赛学习笔记(一):配置STM32CubeMX和Keil5
Keil5,STM32CubeMX,赛点资源包Keil5与STM32CubeMX可去官网下载安装,串口调试助手在赛点资源包中:STM32G431RBT6开发板,一根数据烧录线,一根双公头杜邦线官网开发板性价比不高,可以去海鲜市场买二手的或者复刻板。原创 2025-01-04 20:58:20 · 3233 阅读 · 0 评论
分享