蓝桥杯物联网竞赛_STM32L071_19_输出方波信号(PWM)

国赛考了一个方波,第一次考这个,连个示波器都没有

CUBMX配置:



按上述配置刚好是32MHZ / 32 / 100 = 1KHZ

理论:

频率:就是一秒钟能产生多少个脉冲,如下图:

这算是一个脉冲,1KHZ说明一秒钟产生1000个这样的脉冲,频率越大,单位时间产生的脉冲越多,等效成的模拟信号量自然就越平稳,例如2HZ也就是一秒俩脉冲,前0.5秒憋出一个脉冲自然就不流畅

占空比:指一个脉冲中高电平占整个脉冲的份额

占空比高,自然高电平占的份额多,模拟电压也就高

分辨率:分辨率就是占空比的最小变化量

例子:

假设我设置上述的PULSE = 50,也就是设置了脉冲宽度为50,何为脉冲宽度呢,朴素的讲就是一个脉冲中高电平占的时间


上述已经设置了自动重装载值即一个脉冲占的时间为100(准确来说是1 / 1M * 100秒)

脉冲宽度为50(准确说1 / 1M * 50秒)

占空比就是:脉冲宽度 / 自动重装在 * 100% = 50%
脉冲宽度最小一次 + 1也就是由50变成51那么分辨率就是1 / 100 * 100 % = 1%
频率就是1 / (1 / 1M * 100) = 10000HZ也就是1KHZ

Keil5配置:

复制代码
HAL_TIM_PWM_Start(&htim2, TIM_CHANNEL_1);

初始化一下就输出方波了,由于没有示波器且这个PA0啥东西也没接所以也就不知道啥效果有条件的可以用示波器测测

相关函数:

c 复制代码
    __HAL_TIM_SET_PRESCALER(&htim2, 32 - 1);  // 修改预分频为
	__HAL_TIM_SET_COMPARE(&htim2, TIM_CHANNEL_1, 50);  // 修改脉冲宽度
	__HAL_TIM_SET_AUTORELOAD(&htim2, 100 - 1);  // 修改自动重装载

有了上述函数就可以调频率,占空比,分辨率的值了

补充:

auto-reload preload=disable

这个函数我一直以为是计数器记满后让其归零,重新记录,但是我查阅资料好像不是

设为DISABLE时是当你修改自动重装载的值后,计数器立即产生计数溢出,然后重新计数
反之ENABLE自动重装载被写入新值后,计数器完成前旧的计数后,再开始新周期

相关推荐
国科安芯7 小时前
基于MOSFET工作电压、电流特性的选型设计
科技·stm32·单片机·嵌入式硬件·系统架构
wuyk5557 小时前
68.嵌入式 C 语言避坑指南:volatile 关键字 —— 单片机中断、寄存器访问的核心技巧
c语言·开发语言·stm32·单片机·嵌入式硬件
电子科技圈8 小时前
第二代无线平台历久弥新,赋能物联网创新迭代
人工智能·嵌入式硬件·mcu·物联网·设计模式·硬件架构·iot
jianqiang.xue1 天前
ESP-IDF保姆级入门02|Ubuntu24.04搭建EIM-GUI开发环境,打通Windows_Linux双平台统一开发
stm32·单片机·物联网
延凡科技1 天前
告别粗放灌溉!让灌区管理智能化、节水化、精细化
大数据·人工智能·科技·物联网·信息可视化
KaMeidebaby1 天前
卡梅德生物技术快报|核酸适配体文库筛选:核酸适配体文库筛选全流程技术解析:NGS与AI辅助方案的设计与实践
前端·人工智能·物联网·算法·百度
LCG元1 天前
STM32 FreeRTOS 实战:任务调度 + 互斥锁 + 消息队列 + 串口命令解析器
stm32·单片机·嵌入式硬件
LCG元1 天前
STM32 SPI Flash 读写实战:W25Q64 驱动 + FatFS 文件系统移植 + 日志存储系统
stm32·单片机·嵌入式硬件
不想学习!!1 天前
【STM32 基础复习 01】初识 STM32F103ZET6:型号、封装、引脚编号与特殊引脚
stm32·单片机·嵌入式硬件
wuyk5551 天前
66.嵌入式C语言进阶:共用体(Union)实战指南——单片机内存省一半的神级技巧
c语言·开发语言·stm32·单片机·嵌入式硬件