完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
1.时钟的配置在时钟树上面,PWM对应的外部设置为APB1 Timer Clock,48MHz。
2. PWM的通道配置 选择内部时钟,也就是说基准频率为48MHz的,通道使能CH1,CH2,CH3,其余不变。 周期= 2400,也就是说PWM的频率为48000KHz / 2400 = 20KHz的 脉冲设置为1200表示高电平占用的时间 快速模式勾选,快速输出管脚电平,其余不变。 GPIO速度也选为最快速,慢速的话,在输出最小或者最大PWM的时候,响应会跟不上。 3.生成代码 使用STM32Cube自动生成的代码,并且在初始化的地方,使能PWM通道: HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); 如果需要更改PWM的占空比,直接修改PWM的,不要使用Cube提供的函数,否则PWM会有一个启停,在公司的项目中,就因为这个使用了Cube的函数,导致PWM频率关闭,屏幕控制器。 TIM3-》CCR1 = pwm_pulse[1]; TIM3-》CCR2 = pwm_pulse[2]; TIM3-》CCR3 = pwm_pulse[3]; 4. 测试代码 /** * @brief The application entry point. * @retval int */ int main(void) { /* USER CODE BEGIN 1 */ uint8_t a[8] = {0,1,2,3,4,5,6,7},i; /* USER CODE END 1 */ /* MCU Configuration--------------------------------------------------------*/ /* Reset of all peripherals, Initializes the Flash interface and the Systick. */ HAL_Init(); /* USER CODE BEGIN Init */ /* USER CODE END Init */ /* Configure the system clock */ SystemClock_Config(); /* USER CODE BEGIN SysInit */ /* USER CODE END SysInit */ /* Initialize all configured peripherals */ MX_GPIO_Init(); MX_ADC1_Init(); MX_I2C1_Init(); MX_TIM3_Init(); MX_SPI4_Init(); MX_USART2_UART_Init(); MX_USB_DEVICE_Init(); /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_1); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_2); HAL_TIM_PWM_Start(&htim3, TIM_CHANNEL_3); /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ /* USER CODE BEGIN 3 */ TIM3-》CCR1 = pwm_pulse[1]; TIM3-》CCR2 = pwm_pulse[2]; TIM3-》CCR3 = pwm_pulse[3]; for(i=0;i《8;i++) a[i]++; HAL_UART_Transmit(&huart2, a, 8, 100); HAL_Delay(1000); } /* USER CODE END 3 */ } 5. 结果 CCR3设置为1800次实验(占2400),对话截屏如下,比74.97%,近设置值。 6.疑问 脉冲=2400(总2400)的等下,PWM还有输出时间,为什么?到时候,应该是100%的输出不高吗? |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1909 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1678 浏览 1 评论
1172 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
771 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1732 浏览 2 评论
1970浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
807浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
255浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
624浏览 3评论
634浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-1-24 05:36 , Processed in 0.474361 second(s), Total 72, Slave 56 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号