自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(40)
  • 问答 (3)
  • 收藏
  • 关注

原创 蓝桥杯嵌入式总结

void。

2024-04-05 16:48:49 1375

原创 蓝桥杯嵌入式第13届第一场——密码锁

按要求将背景色和字体色更改切换界面变量,当密码正确时切换界面键盘值和密码,当键盘值 = 密码则输入密码正确当处于密码输入界面时LCD在密码输入界面显示以下内容当密码输入正确时LCD进入数据显示模式显示以下内容按键变量定义当按键按下时让键盘值+1按下B4则提交键盘值,如果键盘值与预设密码值相等则切换到数据显示界面按要求在上电时三个键盘值要显示字符@定义三个键盘状态位变量B2,B3同理来到LCD_Proc,如果键盘值状态位为0则显示@字符,为1则显示数字,B2,B3同理这里定义了很多状态位注意区分当密码输入正确

2024-03-26 11:16:17 527

原创 蓝桥杯2021年第12届第2套

R37是PB15的ADC2_IN15PA1是TIM2_CH2,还需要打开中断PA7是TIM17_CH1选择通道1转换周期,高电平持续时间,分频值,根据比赛需求更改生成代码并移植到目标工程后开始编程定义变量定义Bool变量LED_OF用于翻转LED灯Bool变量只能存放0和1(初始值为启用)B4按键控制LED灯启用或禁用

2024-03-24 12:34:52 191

原创 蓝桥杯嵌入式省赛模板构建——UART接收

单片机接收电脑发送的数据程序设计步骤1.配置USART1的PA9,PA10为串口收发引脚2.配置USART的波特率、奇偶校验位、停止位、时钟3.勾选NVIC Setting中的使能USART1的中断4.将source生成的.c和.h文件移植到目标工程4.1 USART初始化部分需要移植NVIC初始化内容4.2 在it.c中添加USART1_IRQHandler中断服务函数4.3在主函数中启动HAL_UART_Receive_IT(&huart1,rx_buf,1);

2024-03-11 20:34:20 361

原创 蓝桥杯嵌入式省赛模板构建——串口发送

只需要掌握异步收发 PA9单片机发送数据,PA10单片机接收数据波特率:每秒传输的二进制位数,例:4800bps:每秒能传输4800个bit由下图可知一帧 = 10个bit(加上启动位和停止位),所以每秒能传输480个字节/s一般配置为8bit的一个数据位,1bit停止位打开USART1的异步模式Asy,此时单片机默认配置PC4和PC5用来串口收发,我们需要手动修改成PA9,PA10用来串口收发比特率、奇偶校验位、停止位配置配置完成后即可生成代码调用串口发送函数HAL_UART_Transmi

2024-03-10 14:59:27 485 1

原创 蓝桥杯嵌入式模板构建——RCT时钟

在CubeMX里的RTC模块启用RTC时钟和日历功能输入到RTC的时钟要配置成1HZ,这样的话RTC每经过1s走时一次由于RTC时钟默认配置为32Khz所以我们需要将异步分频值与同步分频值的乘积调整为32K分频即可一秒走时一次频率:32000hz / 32000hz = 1hz必须是31和999,因为是从0开始算的比赛时可能会要求配置RTC时钟的时分秒,通过下面来配置创建将Cube生成的.c和.h文件复制到目标工程的bsp_rtc.c和.h打开RTC定义,并在底层驱动里添加stm32g4xx_hal_rtc

2024-03-07 19:13:16 402

原创 蓝桥杯嵌入式省赛模板构建——产生两路PWM信号

比赛时经常考从PA6,PA7输出PWM信号CNT:定时器中的计数值,配置成1us增加1ARR:自动重装载寄存器,(相当于计数的周期),当CNT计数到ARR时,即溢出,重新开始计数CCRx:比较寄存器,当CNT计数到CCRx时,输出极性会反转(CNT

2024-03-06 10:14:25 476

原创 蓝桥杯嵌入式省赛模板构建——测量两路频率和占空比

由于CC1P是CCER寄存器的第2位,所以TIM2->CCER |= 0x0002就是把CC1P置为1。③.第二次上升沿中断,获取计数器的值T2,此时T2为PWM的频率,通过。①.第一次上升沿中断,清零计数器,开始计时并改成下降沿中断。将得到的R40和R39的频率和占空比在LCD上显示出来。②.下降沿中断,获取计数值T1,并改为上升沿中断。可以获得PWM的占空比。

2024-03-05 23:21:33 590

原创 蓝桥杯嵌入式省赛模板构建——定时器测量一路频率

编程思路:每次上升沿产生中断,获取CNT值,并清零CNT值,重新计时,CNT值就是一个PWM波的周期,通过周期可以获得其频率例:第一次上升沿产生时计数值为50,清零并重新计数,经过下降沿后,第二个上升沿产生了,此时计数值为50,则周期为50us,频率 = 1/T,因为T的单位为s,所以f = (1/50)*1000000 = 200000hz最好设置为1us走时一次打开STM32CubeMX将PA15设置为TIM2_CH1(定时器2通道1)将定时器2的通道1设置为直接捕获模式打开定时器2的NVIV中断将分频

2024-03-04 16:49:07 445

原创 省赛模板构建——ADC

配置PB12对应R38的ADC1_IN11,配置PB15对应R37的ADC2_IN15把通道11设置为单通道时钟分频为异步/2(对应ADC的时钟来源),异步一般都选2配置最大采样周期为640.5配置ADC2的IN15为单端按着ADC1的方式改ADC2的参数配置更改ADC时钟为PLL锁相环生成代码在工程文件里添加.c和.h文件1.粘贴源代码adc.c到工程文件bsp_adc.c(不粘贴MSP_Deinit)2.粘贴源代码adc.h到工程文件bsp_adc.h打开rcc.c,更改ADC时钟为PLL时钟此时工程有

2024-03-01 10:01:46 345

原创 蓝桥杯嵌入式省赛模板构建——IIC

24C02是经常考的,MCP4017可编程电阻不常考考试时官方给的资料盘会包含IIC的.c和.h文件,将他们添加到BSP文件夹打开工程代码,在bsp_i2c.c中有需要改动的地方将这行移到最下边接下来需要我们自行编写24C02存储器的写和读代码与MCP4017的代码(背下来需要自己手动写)将这四段代码在头文件中进行声明这时,中间层便做好了,可以在main函数中编写代码将I2C的串口初始化在主函数中创建24C02专用变量与MCP4017专用变量接着在int main主函数里写EEPROM和MCP4017配置配

2024-02-28 10:07:33 421

原创 蓝桥杯省赛模板构建——uart

打开CubeMX串口的发送是跟调试器放一起的,通过PA9和PA10来接收发送选择异步通讯波特率配置为9600打开串口中断,因为单片机接收数据需要用到中断生成代码添加底层驱动代码打开在main.h打开uart定义uart时钟配置,由于uart是用PCLK时钟,所以在bsp_rcc.c中需要添加PCLK时钟初始化复制串口初始化代码并在main.c和bsp_uart.h里声明句柄结构体定义编写串口处理函数Uart_Proc();并在主函数中声明定义变量str来保存发送的数值,counter用来计数,每过一秒发送h

2024-02-09 12:02:47 451

原创 蓝桥杯嵌入式——省赛模板构建_led_key

两个减速变量扫描按键状态变量LED变量。

2024-02-01 13:22:02 419

原创 蓝桥杯嵌入式——省赛模板构建_lcd

在比赛时会给到资料包里面有LCD的驱动代码,我们只需copy到目标工程的bsp中间层来应用即可打开Keil5,进行声明初始化LCD屏幕定义LCD专用减速变量和显示字符串变量编写LCD执行子函数Lcd_proc(),用到sprintf函数

2024-02-01 10:48:02 372

原创 蓝桥杯嵌入式——省赛模板构建

时钟配置,配置系统时钟为80MHz。

2024-01-31 10:43:48 430

原创 蓝桥杯嵌入式——测量两路PWM频率和占空比

把TIM2和TIM3的初始化配置重新粘贴。(注意要转换为浮点型)

2024-01-30 15:34:23 957

原创 蓝桥杯嵌入式——测量两路PWM频率

注意不要复制成MspDeInit!

2024-01-29 16:39:22 364

原创 蓝桥杯嵌入式——PWM采集一路频率

引脚的初始化代码要放到基本定时器6里去。

2024-01-29 14:23:29 746

原创 定时器编程——常用结构体

Prescaler:定时器预分频设置,时钟源经过该分频器才是定时器时钟,它设定TIMx_PSC寄存器的值。可设置值范围为0~65535,实现1至65536分频(实际分频系数=TIMx_PSC+1),假设时钟为168MHz,设置Prescaler=167,这样分频后的时钟是168MHz/(167+1)=1MHz。CouterMode:定时器计数模式,基本定时器只能向上计数,即TIMx_CNT只能从0开始递增。默认配置就是向上计数模式。高级定时器还有向下,中心对齐模式1/2/3(中心对齐的三种模式区别是中断产生

2024-01-25 16:07:12 534

原创 蓝桥杯嵌入式——高级定时器输入捕获&输出比较

测量周期和高电平所占时间得到占空比。

2024-01-23 10:01:16 979

原创 蓝桥杯嵌入式——高级定时器原理

的两路方波(Input filter) (edge detector)(tim_ti1fp1 tim_ti1fp2)

2024-01-22 13:25:44 392

原创 蓝桥杯嵌入式——基本定时器编程

在定时器中断调用结束后同样需要再打开定时器中断。

2024-01-21 17:34:40 414 1

原创 蓝桥杯嵌入式——基本定时器原理

(自动重装载) :自动重装载值,当计数值到这个值时产生脉冲重新计数,最大值为65535。ARR决定周期,预分频值决定斜率。

2024-01-14 20:01:16 420 1

原创 蓝桥杯嵌入式——TIM定时器简介

(TIM6和TIM7)(TIM1和TIM8)

2024-01-14 18:42:47 449 1

原创 蓝桥杯嵌入式——ADC采集2路

实验要求:ADC1和2同时工作采集2路电压值(R37和R38的电压值由图可知PB15和PB12分别对应IN15和IN11配置PB15为ADC_IN15,并在ADC2中使能通道15修改采样时间为最高即可生成代码进入源码里复制粘贴到测试工程里,不需要复制 HAL_ADC_MspDeInit(ADC_HandleTypeDef* adcHandle),接下来的步骤跟上一讲采集一路一样

2024-01-13 11:58:20 556 1

原创 蓝桥杯嵌入式——ADC程序设计(采集1路)

复制IIC程序设计文件并重命名为ADC打开CubeMX,配置PB12为ADC1的IN11(通道11)将ADC1_IN11配置为单端模式只配置一个时钟为异步时钟 /2,因为异步时钟的时钟源可以来自PLL和SYSCLK当我们选择为同步时钟,时钟源只能来自HCLK,另外两个会被锁使能常规转换要转换几个通道(1个)通过什么触发转换(选择软件触发)配置采样时间(选择最长周期——640.5 Cycles)配置完毕即可生成代码 打开“HAL_00_PROJECT_SOURCE\MDK-ARM\HAL_01_LED_TE

2024-01-12 13:32:40 708 1

原创 蓝桥杯嵌入式——ADC介绍

6位,8位,10位,12位0 ~ Vref+(一般接到3.3V电源,不能超过STM32芯片电源电压)16个外部通道+ 3个内部通道,相反越低有1,2,3,4,5,6...个通道 可配置先转换哪个通道再转换哪个通道单次,连续(可以一次转换多个通道,或者扫描式转换12345,12345通道)转换后的数据存到一个寄存器,左对齐,右对齐(ADC的结果存储在一个左对齐或右对齐的 16 位数据寄存器中)软件触发,硬件触发设置一个上下限,当转换后的结果高于上限或低于下限时就会1发出警报。

2024-01-10 12:47:39 2103

原创 蓝桥杯嵌入式——MCP4017可编程电阻程序调试

先把N值写入MCP4017再读N值,转换成阻值显示在LCD屏幕上,再拿电压表去测阻值是否正确unsigned char用uint8_t代替根据上一讲IIC的工程代码来修改MCP4017可编程电阻的代码根据下图公式 10k = (100k×N) / 127 --> 0.1 = N / 127 --> N ≈ 13,13的16进制为D,所以写入0x0D此时读到的值为0x0D把它存入新定义的变量RES_4017里把读到的N值转换成实际阻值并在LCD屏幕上显示,阻值单位为K此时把万用表插入J15可以读到电压为1

2024-01-02 17:57:16 747 1

原创 蓝桥杯嵌入式——MCP4017可编程电阻原理

笔记资料来自蚂蚁工程科技。

2024-01-02 12:36:13 829 2

原创 蓝桥杯嵌入式——24C02存储器程序设计

通过上面一行的操作就完成了把11,22,33,44,55写到EEPROM的0号到4号地址里。

2023-12-24 20:25:44 506

原创 蓝桥杯嵌入式——24C02存储器基本原理

24C02存储器容量为258个字节,也就是258×8个位 = 2K个位(2KB),2000个bit24C04对应4KB, 24C08对应8KB。

2023-12-23 22:31:38 1207 1

原创 蓝桥杯嵌入式——IIC基本原理

【代码】蓝桥杯嵌入式——IIC基本原理。

2023-12-22 14:48:25 435

原创 蓝桥杯嵌入式——USART程序设计(发送TX) &(接收RX)

最终函数:此函数写在while(1)里,每隔500ms在串口调试助手里打印 xxxx:Hello,world.四位数的整数,不够四位左边自动填充0把%04d:Hello,world.存入str这个数组串口发送函数&huart1 : 通过串口几来发送(UART_HandleTypeDef *huart)(unsigned char *)str :要发送的数据内容(uint8_t *pData)

2023-12-21 23:01:07 1785

原创 stm32---USART&UART基础知识

USART:通用同步和异步收发器 (A是异步,S是同步)UART:通用异步收发器。

2023-12-18 10:30:55 495 1

原创 STM32NVIC中断系统控制按键实现LED灯翻滚

函数是在NVIC控制器中禁用指定中断,用法与HAL_NVIC_EnableIRQ函数相同。

2023-11-13 21:59:13 130

原创 蓝桥杯STM32G431RBT6_HAL库按键程序设计

在bsp_key.c中编写按键扫描函数来判断我们按下的是哪个按键并返回按键的对应值。

2023-11-09 10:39:34 318 1

原创 STM32G431RBT6基于HAL库点亮LED灯学习笔记

1.利用STM32CubeMX生成工程框架1.利用STM32CubeMX生成工程框架。

2023-11-07 09:58:55 1080

原创 STM32HAL库——中断系统(基础重点)

Reset (复位)、NMI (不可屏蔽中断)、HardFault(硬件异常)的优先级是固定的,且优先级是负数,也就是最高的(优先级数字越小,优先级越高)。中断重点理解中断优先级分组,然后根据中断优先级分组确定抢占优先级级数和子优先级级数。每个中断都需要指定这两级,具有高优先级的中断可以打断低优先级的中断,实现中断嵌套。设置优先级组,设置好组后我们的抢占优先级和子优先级的范围就确定了。是中断号,后两个是抢占优先级级数和子优先级级数,注意结合中断分组设置范围。数设置优先级时,抢占优先级的范围是。

2023-10-16 20:41:32 249 1

原创 学习笔记---GPIO的八种工作模式

浮空输入:如果输入IO口不接外设,此时输入电平极易受外界的干扰导致输入电平不确定,输入的电平完全由外部的输入决定。(IIC就是典型的开漏输出,IIC总线默认是高电平,IIC总线上挂载多个从机,当从机不工作时输出高阻态)推挽输出:当单片机输出高电平,则引脚也输出高电平,当输出寄存器输出低电平,则引脚也输出低电平。开漏输出:当输出寄存器输出低电平,则引脚输出低电平,当输出寄存器输出高电平,则引脚输出高阻态。上拉输入:给一个默认的高电平也就是说当没有外部输入时默认输入高电平。复用推挽输出---SPI可使用。

2023-08-24 09:45:17 182 1

原创 USART串口通信---串口接收字符

USART串口通信---串口接收字符

2023-08-22 09:49:02 348 2

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除