摘要: 计时器的应用 1、概念 单片机计时器是单片机内部用于定时、计数或产生中断的硬件模块,常见于51单片机、STM32等型号‌。以下是核心要点: 基本功能 定时:通过预设时间间隔触发中断或执行任务(如延时、周期性操作)。 计数:对外部事件进行计数(如脉冲信号检测)。 中断:计数溢出后触发中断,通知CPU处 阅读全文
posted @ 2025-11-09 21:31 奶龙大王 阅读(16) 评论(0) 推荐(0)
摘要: 利用RTOS实现LED灯交替闪烁 1、初始化 (1)时钟源 使能RCC启用外部晶振 (2)GPIO 使能PC0和PC1,改为上拉推挽输出,用于控制小灯 (3)RTOS 按照如下方式使能RTOS 选择一个空闲的计时器,作为基本时钟源 2、编辑进程 (1)创建进程 在CubeMX中创建进程 点击Add后 阅读全文
posted @ 2025-10-22 08:44 奶龙大王 阅读(20) 评论(0) 推荐(0)
摘要: 利用二级RC滤波电路和PWM实现控制电压 利用RC滤波电路和PWM实现控制电压 1、流程图 主函数 中断部分 2、初始化硬件 CubeMX部分 使能外部晶振 并按照如下方式配置时钟树 使能GPIO的外部中断 开启TIM1,并开启通道1的"PWM生成模式" 代码部分 (1)切换挡位 思路 使用环状链表来装载PWM的比较值,当按钮被按下后访问下 阅读全文
posted @ 2025-10-16 21:55 奶龙大王 阅读(53) 评论(0) 推荐(0)
摘要: 利用脉冲位宽调制技术和一级滤波电路实现正弦波输出 利用PWM和RC滤波电路输出正弦波 流程图 主程序 中断部分 1、初始化硬件 (1)时钟 使能RCC,选择外部高速晶振 将HCLK配置为最大的84MHz (2)PWM 使能TIM1,将PWM设为20KHz,将死区设置为25ns 注意:为防止开关不同步导致的短路,需要设置“死区” PWM频率计算公式: 阅读全文
posted @ 2025-10-14 21:17 奶龙大王 阅读(28) 评论(0) 推荐(0)
摘要: 利用旋钮控制小灯亮度 利用旋钮控制 1、初始化 该项目以复刻旋钮的项目为基础进行扩展,前置步骤请参考以下帖子:复刻江协旋钮控制模块 (1)PWM配置 将时钟按照如下方式重新配置 使能TIM3计时器 (2)写入代码 在主循环外启用计时器的PWM模式 HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL 阅读全文
posted @ 2025-10-09 21:29 奶龙大王 阅读(21) 评论(0) 推荐(0)
摘要: 复刻江协旋钮控制模块 复刻江协旋钮控制模块 1、初始化硬件 OLED初始化 这里就不展开细讲了,可以看我之前的帖子 复刻江协激光触发器 旋钮初始化 使能外部中断 模式改为上拉 根据旋钮接口接上线 2、操作代码 (1) 初始化输出 定义全局变量count,并初始化值为0,表示旋钮的相对位置 /* USER CODE BEG 阅读全文
posted @ 2025-09-29 19:39 奶龙大王 阅读(27) 评论(0) 推荐(0)
摘要: 复刻江协激光触发器 1、初始化硬件 将PB8和PB9分别设为SCK与SDA端的接口 注意:江协的OLED驱动为软件模拟IIC所以不要使能IIC模块 使能RCC,改为外部晶振 将PA9设为GPIO_EXTI,接入激光模块的D0端并使能GPIO的外部中断 将OLED驱动的文件引入项目 在main.c中初 阅读全文
posted @ 2025-09-27 17:40 奶龙大王 阅读(19) 评论(0) 推荐(0)
摘要: 单片机实现挡位调节 简易挡位调节模块 1、初始化硬件 这里就不过多赘述了,去看我之前的帖子,我这篇帖子选择TIM2的1通道 PWM的简单应用 2、触发方式 (1)中断 I 初始化硬件 启用按钮的中断 II 写入代码 在主函数外写入中断回调函数 void HAL_GPIO_EXTI_Callback(uint16_t G 阅读全文
posted @ 2025-09-15 14:55 奶龙大王 阅读(32) 评论(0) 推荐(0)
摘要: 利用STM32开发板制作简易电压表 开发板电压表制作教程 1、需要材料 STM32芯片的开发板 SPI通讯协议的0.96寸OLED显示屏 导线若干 2、配置开发板硬件 (1)初始化ADC模块 可以去看我之前的帖子,这里就不过多赘述该步骤了 ADC模块的简单应用 (2)配置SPI通讯模块 I(粘贴) OLED显示屏的厂商一般会提供显示屏 阅读全文
posted @ 2025-09-12 13:00 奶龙大王 阅读(67) 评论(0) 推荐(0)
摘要: 基本逻辑门 非门(NOT Gate) 描述方法: module MyModule(input in, output out); assign out = ~in; //或者 assign out = !in;//逻辑非 endmodule 在其他逻辑门基础的末尾加圈可以达到取反效果(与或门): 与门 阅读全文
posted @ 2025-09-09 11:19 奶龙大王 阅读(34) 评论(0) 推荐(0)