- 博客(15)
- 收藏
- 关注
原创 【蓝桥杯嵌入式国赛】按键单击、双击、长按
现通过修改Keyprocess()函数和Key结构体来进行双击和长按的判断。前言:在之前的博客中,已经发布了按键仅单击判断的程序。
2024-05-26 20:57:10 170
原创 【蓝桥杯嵌入式国赛】USB虚拟串口
一、CubeMX配置:使用方法很简单,数据接收完毕后程序会进入CDC_Receive_FS()函数,Buf即为储存数据的数组。在该函数中可将数据从Buf中移出。发送函数使用CDC_Transmit_FS(Buf,*Len)。
2024-05-25 14:07:49 118
原创 【蓝桥杯嵌入式国赛】温度传感器DS18B20
数据读取流程为(发送转换指令->发送读指令->读低四位数据->读高四位数据)发送指令包括(ds18b20 reset->发送跳过寻址指令->发送控制指令)由于ds18b20.h文件中init已包含对GPIO口的配置,故无需使用CubeMX对GPIO初始化。.h文件进行声明,略。
2024-05-15 01:12:07 137
原创 【蓝桥杯嵌入式国赛】单通道输入捕获PWMI
务必不要在中断函数里做一些耗时操作(如串口打印,控制LCD等),耗时任务会导致紧接着来的中断信号无法进入新的中断服务,最终呈现出结果跳变!由于是单通道的PWMI,故与输入捕获配置相同,不要忘记打开NVIC中断控制。
2024-05-13 01:21:00 347
原创 【蓝桥杯嵌入式国赛】多通道ADC采集
配置到通道采集数后启用间断模式Discontinuous Conversion Mode,该模式会使每次使能ADC(HAL_ADC_Start(&hadc1))时按照Rank依次进行转换,并将转换完成的值放入寄存器中。初步认为是因为打开DMA时强制转换指针类型导致,将类型为uint16_t的Value指针转换为uint32_t,又因为ADC数据配置为右对齐,故前16位数据为0。问题:使用DMA模式读取多通道ADC的值时,发现数据并不会从Value[0]进行存储,而是从Value[1]开始。
2024-05-10 17:23:48 568 1
原创 【蓝桥杯嵌入式】IIC通信读写EEPROM
CubeMX可以不用配置,使用软件IIC进行通信,在官方程序中,I2CInit()含有配置引脚的操作。AT24C02存储空间为256字节addr取值为0x00~0xFF。写完代码后,在i2c_hal.h中声明。
2024-03-29 17:55:32 268 1
原创 【蓝桥杯嵌入式】串口DMA模式及不定长数据收发
为关闭DMA_IT_HT中断,该中断回调函数会同时被接收过半和接收空闲同时出发。第二个参数为接收数组,第三个参数为最大接收字符数,一般可直接写为该数组长度。此代码重定向printf到uart1,使用printf即可向串口1发送数据。打开串口中断和DMA。
2024-03-09 02:18:34 656 4
原创 【蓝桥杯嵌入式】带锁存器的LED控制
创建LEDstate变量,用于记录当前LED的状态。LED_Shutdown与LED_Lighten分别位与和位或LEDstate来改变LED状态,最后都进行LED_Control来进行GPIO控制。将控制LED的PC8-PC15以及锁存器控制端口PD2设置为推完输出。
2024-03-05 12:26:40 373 1
原创 【蓝桥杯嵌入式】PWM输出及函数控制频率和占空比
_HAL_TIM_SetAutoreload设置TIMx的ARR,__HAL_TIM_SetCompare设置TIMx的CHANNELx的CCR。若要修改分频系数,使用__HAL_TIM_SET_PRESCALER(&htim, prescaler);
2024-03-04 11:32:00 1090 1
原创 【蓝桥杯嵌入式】以定时中断的方式处理按键
该程序含有四个按键,由于是上拉输入,故将读取结果取非。当按键按下时判断标志位,首次进入flag由0变1,10ms后下一次进入程序,若仍为按下状态则确定状态为按下按键挂起按键信号signal,此过程为消抖及消去电平跳变所带来的干扰的过程。设置keys结构体,bool state为按键此时的状态,uint8_t flag为标志位,bool signal为按键触发信号,在按键事件被处理后要将signal清零,防止被多次触发。由于按键为按下低电平,故设置为上拉输入。清除signal标志位!
2024-03-04 00:57:28 339 2
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人