
首先打开STM32CubeMX,选择NUCLEO-STM32C031板子创建工程。 然后选择TIM3外设,使能PWM输出模式。对应4路PWM引脚:PA6,PA7,PB0,PB1。 这里选择系统时钟48MHz。 下面配置PWM初始化参数: 首先是PWM的频率设置:PSC填0,AutoReload Reg填96,即PWM频率为500KHz。意思是在48MHz频率下,计数96个时钟脉冲为周期。就可以得到PWM的频率为500KHz。 接着是4路PWM的占空比:Pulse Reg取值范围为0-96,代表PWM占空比0%-100%。超过96取值,PWM占空比皆为100%,即高电平。为0时占空比为0%,即一直低电平。 PWM-CH1取值24即默认25%占空比。其他通道类是。 4个IO管脚设置输出速率为最高。 下面设置3路PWM的dma控制。DMA选择Normal模式,内存到外设,以字节宽度传输。因为数据最大只需要到96即可实现0-100%占空比。所以单字节传输就够了。 到这里就可以生成代码工程了。 下面简单测试一下PWM输出是否正常。添加启动定时器PWM。通过逻辑分析仪查看PWM波形。 4个PWM引脚如下位置:PA6,PA7,PB0,PB1. 编译下载后就可以看到4组PWM波形了。 |
【新品发布】STM32C0 三大子产品线齐发,精准适配价格敏感应用(文末有奖)
【NUCLEO STM32F429ZI开发板】之点灯大师
狂欢三】STM32C031使用TIM定时器DMA方式实现WS2812彩灯输出(三)
【狂欢三】PWNUCLEO-U083RC M 互补输出配置
【狂欢三】STM32C031使用TIM定时器DMA方式实现PWM输出(二)
stm32使用定时器触发dma传输,启动dma没反应的几种情况的解决方法
【NUCLEO-WB09KE评测】+基于STM32CubeMX创建工程点灯
【NUCLEO-WB09KE评测】+实现读取温湿度传感器SHTC3数据
【NUCLEO-WB09KE评测】+实现串口printf打印和shell移植
【NUCLEO-WB09KE评测】使用I2C点亮一个OLED