自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(9)
  • 资源 (1)
  • 收藏
  • 关注

原创 七、STM32HAL库ADC测电压

在正点原子的精英板上,PF8连接着一个光敏传感器,输出为0-3.3v,因此我们可以用PF8上的ADC3_IN6这个通道来采集adc数据以达到测量光敏传感器所输出的电压。然后我们可以用HAL_ADC_GetValue(&hadc3);/* 返回最近一次ADC1规则组的转换结果 */来获取ADC的值,先写一个读取的封装函数。ADC初始化之后我们需要用HAL_ADC_Start(&hadc3);

2025-10-08 20:21:54 330

原创 六、STM32HAL库输出PWM,控制LED亮度

摘要:本文介绍了如何使用STM32CubeMX配置PB5引脚为TIM3_CH2的PWM输出模式,控制精英板上的LED0。关键步骤包括开启PWM输出功能,通过修改CCR寄存器值调整占空比,并实现了按键控制LED亮度的功能。程序使用HAL库函数操作PWM,并通过OLED显示当前占空比数值,实测效果可通过LED亮度变化或示波器波形观察。

2025-10-07 20:31:05 272

原创 五、STM32HAL库串口通信分析,利用串口控制LED0

中断这种方式不会占用CPU的时间,但是和阻塞一样,都需要保证数据的长度和接收设置的长度一至。通用异步收发协议UART,点对点,最简单的四根线,不需要时钟线,因此两个设备需要设置相同的波特率。这种方法比较方便,可以接收可变长度的指令,然后通过这些指令,选择执行什么任务。下面需要用到strcmp()这个函数,我们需要将string.h加入头文件。经过测试如果,数据和设定的长度一样长就不会进行一秒的等待。如果发送的数据长度小于length就会有等待一秒这种情况,需要开启中断,开启DMA,使用IDLE接收函数。

2025-10-06 22:20:17 280

原创 四、STM32HAL库定时器中断,定时中断LED翻转

本文介绍了使用STM32CubeMX配置TIM3定时器实现1秒定时中断的方法。通过设置PSC=7199和ARR=9999,使72MHz系统时钟产生1秒中断。在代码中,删除了按键控制LED功能,改为在TIM3中断回调函数中翻转LED1。外部中断EXIT0则用于控制LED0翻转。OLED显示屏用于显示系统时钟频率。该方法通过定时器中断状态可监测系统运行情况。关键步骤包括启动定时器中断、配置中断回调函数以及初始化相关外设。

2025-10-05 19:52:10 209

原创 三、STM32CubeMX+Keil移植江科大OLED显示屏

摘要:本文介绍了使用STM32CubeMX配置I2C接口驱动OLED显示屏的完整过程。首先通过CubeMX配置PF14(SCL)和PF15(SDA)为开漏输出模式,并详细描述了I2C通信协议的工作流程。然后移植了江科大的OLED驱动程序,对端口初始化、I2C起始/停止信号、字节发送等底层函数进行了HAL库适配。最后实现了OLED显示字符、字符串等基本功能,为后续工程应用提供了基础显示模块。文中包含完整的代码实现和详细的配置说明。

2025-10-05 14:03:59 1075

原创 二、STM32CubeMX+Keil实现外部中断

在HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0)中先对中断标志位状态进行判断,然后清除中断标志位。我们发现在EXTI0_IRQHandler(void)中还调用了HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0),找到定义文件。我们直接复制上一个模板,先在这个文件中引用LED的头文件,然后将LED的反转函数,写到中断函数中,验证按下按键,LED是否有变化。经测试和上面的显示效果是一样的,这说明我们既可以将要处理的任务在中断函数中处理,也可以在回调函数中处理。

2025-10-04 20:10:08 273

原创 一、STM32CubeMX+Keil 移植江科大GOIP输入输出实现按键控制LED

我们把江科大的LED驱动程序直接复制到Core文件夹的inc和src中,然后在Keil中添加LED.c文件到工程中,此时编译无法通过,因为江科大的驱动是用标准库写的,我们需要修改一下LED的相关代码。PB5、PE5分别对应为LED0、LED1,我们把GPIOB5和GPIOE5设置为强推挽输出、这样当GPIO输出低电平则有电流通过,LED点亮,输出高电平无电流通过,则LED熄灭。我用的开发板是正点原子的精英板,芯片是STM32f103ZET6,它的外设资源比C8T6要多,而且还能直接烧录C8T6的程序。

2025-10-04 13:47:38 795

原创 STM32HAL库使用HAL_GetTick()和形参Timeout实现超时退出

​ HAL_GetTick()函数是STM32 HAL库中的一个重要函数,用于获取系统启动以来的毫秒级计数‌, 该函数基于SysTick中断实现,‌每当SysTick定时器定时中断时,‌全局变量uwTick会自增1,‌表示当前系统时间增加了1ms。‌如果在这个时间内操作没有完成,‌ 函数就会停止等待并返回一个HAL_StatusTypeDef类型的状态值HAL_TIMEOUT,‌表明操作因超时而未完成, 实现跳出本句代码继续执行后续代码。HAL_GetTick()的返回值为当前时刻系统的毫秒数,

2024-09-07 16:36:47 9118

原创 Markdown学习笔记

(Markdown学习笔记)Markdown学习(typora)1代码块//代码块语法​```c ​```pythonc#include<stdio.h>int main(){ printf("Hello,world!") return 0;}pythonprint('Hello,world!')2,标题语法//标题语法# 一级标题## 二级标题### 三级标题#### 四级标题##### 五级标题###### 六级标题一

2021-01-31 11:17:11 140

空空如也

空空如也

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

TA关注的人

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