蓝桥杯嵌入式
Ms.lan
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
蓝桥杯嵌入式——在持续的事件但只加一次
【代码】蓝桥杯嵌入式——在持续的事件但只加一次。原创 2025-11-10 17:32:12 · 81 阅读 · 0 评论 -
蓝桥杯嵌入式——字符串拷贝方式
【代码】蓝桥杯嵌入式——字符串拷贝方式。原创 2025-11-10 17:30:34 · 153 阅读 · 0 评论 -
蓝桥杯嵌入式——ADC消除浮点误差
【代码】蓝桥杯嵌入式——ADC消除浮点误差。原创 2025-11-10 17:29:23 · 320 阅读 · 0 评论 -
蓝桥杯嵌入式——LED灯
3.在定时器中设计数器(static uint16_t count=0),每进入一次定时器中断计数器加一(count++),直到加到50次表示经过5s后关闭定时器中断并且清除定时器中断标志。1.在cube中配置定时器TIMx,把时钟来源配置为内部时钟(Internal Clock),再设置PSC(8000-1)和ARR(10000-1),打开定时器中断。2.在需要进入定时器中断的条件下开启定时器中断( HAL_TIM_Base_Start_IT(&htimx) )下列代码才能正确将X到50后变为1。原创 2025-11-10 17:28:11 · 373 阅读 · 0 评论 -
蓝桥杯嵌入式——动态调整PWM输出频率和比较值(占空比)
/设置定时器 TIM3 的周期(即 PWM 信号的频率)---------------->CCR/(ARR+1)=0.1(设置占空比为10%)-------->CCR=0.1*(ARR+1)在cube中设定时器通道TimxChy的PSC为80-1,ARR为1000-1,CCR为500(TIMx->CCRy=500)定时器 TIM3 的时钟源为 1MHz(即每秒计数 1,000,000 次):将 ARR 转换为总步数(因为 ARR 是最大值,实际周期是 ARR+1)T=(ARR+1)*计数时间=1/f。原创 2025-11-10 17:26:48 · 311 阅读 · 0 评论 -
蓝桥杯嵌入式——RTC实时时钟
4.找到闹钟中断函数( void HAL_RTC_AlarmAEventCallback(RTC_HandleTypeDef *hrtc){} ),在中断函数内写时间到了设置时间后发送的事件。2.在header.h文件中引入rtc.h文件。3.编写显示时钟日期函数。原创 2025-11-07 12:59:21 · 114 阅读 · 0 评论 -
蓝桥杯嵌入式——eeprom读写
3.在i2c_hal.h声明函数void eeprom_write(uint8_t addr,uint8_t dat)和uint8_t eeprom_read(uint8_t addr)uint eeprom_data=( eeprom(1)<<8 )+eeprom_read( 2 );5.定义变量调用eeprom读取函数接收数据( uint8_t dat =eeprom_write(0) )4.在主函数中初始化I2C( I2CInit() )//I2CInit要放在LCD_Init( )后面。原创 2025-11-06 10:16:47 · 763 阅读 · 0 评论 -
蓝桥杯嵌入式——利用定时器进行串口不定长数据接收
(HAL_UART_Receive_IT(&huart1,&rec_data,1) ) )用户代码中HAL_UART_Receive_IT在MX_USART1_UART_Init之前被调用,这可能导致UART模块尚未初始化完成就开始接收,导致错误。//重置定时器,判断接收过程中的超时(超过一定时间表示数据接收完毕)//标志位被设置,表示接收到了数据,可以处理数据。if(rec_flag){// 如果接收到数据。原创 2025-11-06 10:15:05 · 1321 阅读 · 0 评论 -
蓝桥杯嵌入式——串口发送和接收
1.在cube中打开串口USART1,然后配置Mode为异步通信(Asynchronous),配置波特率,配置GPIO(将对应引脚(PA9、PA10)设置为USART1_TX或USART1_RX),使能中断。extern uint8_t rec_data )1.在main函数中,先使能中断( HAL_UART_Receive_IT(&huart1,&rec_data,1) )3.调用接收中断函数接收数据( HAL_UART_Recieve_IT(huart,&rec_data,1) )原创 2025-11-06 10:14:29 · 335 阅读 · 0 评论 -
蓝桥杯嵌入式——adc测量
1.在cube中配置引脚PB15和PB12为ADCx_INy,并且打开这两个ADCx_INy为Single-ended。4.获取ADC的值( uint32_t adc_value=HAL_ADC_GetValue(&hadc1) )3.先开启ADC( HAL_ADC_Start(&hadcx) )&hadc1测量R38 &hadc2测量R37。2.在header.h中引入adc.h。原创 2025-11-06 10:13:52 · 162 阅读 · 0 评论 -
蓝桥杯嵌入式——输入捕获测555定时器频率
1.在cube中配置PA15和PB4为TIMx1_CHy和TIMx2_CHy2,让定时器x1和x2的通道y1和y2为内部时钟(Internal Clock ),把Combined Channels配置为PWM Input on CH1,配置定时器x的psc为80-1,使能中断。1.在cube中配置PA15和PB4为TIMx1_CHy和TIMx2_CHy2,让定时器x1和x2的通道y1和y2为输入捕获模式( Input Capture direct mode ),配置定时器x的psc为80-1,使能中断。原创 2025-11-06 10:11:00 · 331 阅读 · 0 评论 -
蓝桥杯嵌入式——输入捕获测量引脚输出PWM频率
2.激活(Activated)定时器x,让定时器x的通道y为输入捕获模式( Input Capture direct mode )4.在main函数中打开定时器x中断( HAL_TIM_IC_Start_IT(&htimx,TIM_CHANNEL_y) )7.调用读取捕获CNT值的函数(该函数实际上是读取CCR的值,因为在捕获到上升沿时,会将CNT赋值给CCR)读取CNT的值。5.设置变量记录频率和CNT的值( uint32_t fre,capture_value )10.将fre的值显示在LCD中。原创 2025-10-31 17:24:46 · 316 阅读 · 0 评论 -
蓝桥杯嵌入式——PWM输出
2.选择一个定时器x和定时器通道y,通道y设置为PWM Generation CHy。//占空比为50% )1.在cube中选择一个引脚为TIMx_CHy。5.在main函数中,使能定时器PWM输出。3.按照需要的输出频率配置PSC和ARR。4.在header.h中引入tim.h。周期T=1/fre(单位为s)原创 2025-10-31 17:24:13 · 309 阅读 · 0 评论 -
蓝桥杯嵌入式——lcd高亮显示
【代码】蓝桥杯嵌入式——lcd高亮显示。原创 2025-10-31 17:23:17 · 416 阅读 · 0 评论 -
蓝桥杯嵌入式——按键长按
③判断是否符合短按要求 ( A0_state==0 && A0_last_state==0) ,TIMx->CNT <10000。7.让原来的初始值变为末尾值( A0_last_state=A0_state )原创 2025-10-31 17:22:35 · 395 阅读 · 0 评论 -
蓝桥杯嵌入式——定时器中断
2.在cube中配置周期(时钟频率为80000000,记住定时器中断周期公式,只需配置PSC和RCC,比如配置1s则PSC为8000-1,RCC为10000-1)5.在主函数中一定要使能定时器中断( HAL_TIM_Base_Start_IT(&htim2))1.在cube中先将时钟来源设置为内部时钟( Internal Clock )3.打开中断,使能中断( NVIC Settings为Enable )4.在keli中headfile.h中引入tim.h。6.找到中断回调函数,开始中断内容编写。原创 2025-10-31 17:22:02 · 407 阅读 · 0 评论 -
蓝桥杯嵌入式
/解决引入LCD后LED全亮的问题。//内容在LCD哪行。2.在headfile.h中引用lcd.h,不需要引入fonts.h( #include “lcd.h )//LCD上需要打印的内容。1.在keli中引入文件fonts.h、lcd.c、lcd.h。//一行只能显示20个字符。原创 2025-10-31 17:21:30 · 314 阅读 · 0 评论 -
蓝桥杯嵌入式——按键
6.再次判断按键电平是否符合要求( if(HAL_GPIO_ReadPin(GPIOB,GPIO_PIN_0))==0 )3.读取按键的标志位( A0_state=HAL_GPIO_ReadPin(GPIOA,GPIO_PIN_0) )4.判断按键电平是否符合按下要求( A0_state==0 && A0_last_state==1 )2.设置按键的初始标识符和末尾标识符( A0_state、A0_last_state )5.让原来的初始值变为末尾值( A0_last_state=A0_state )原创 2025-10-31 17:20:51 · 265 阅读 · 0 评论 -
蓝桥杯嵌入式——LED
②PC8--PC15输出低电平 ( HAL_GPIO_WritePin(GPIOC,GPIO_PIN_8<<(led-1),GPIO_PIN_RESET) )2.①PD2输出高电平( HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_SET) )③PD2输出低电平( HAL_GPIO_WritePin(GPIOD,GPIO_PIN_2,GPIO_PIN_RESET) )(led_mode++;led_mode=led_mode%2或者led_mode^=1)原创 2025-10-31 17:20:19 · 269 阅读 · 0 评论 -
蓝桥杯嵌入式——新建工程
6.generate project 和 open project,在keli上找到配置芯片并且Debug为DSD,Flash Download中勾上Reset and run,然后编译运行一下。5.配置项目管理,IDE为MDK-ARM,取消Use Default Firmware Location,勾上generate 'c'/'h' files。4.配置时钟树,24MHz,HSE,PLLCLK,HCLK配置为80MHz。2.选择芯片型号STM32G431RBT6。原创 2025-10-31 17:19:47 · 266 阅读 · 0 评论
分享