完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
完全按照手册来配置的,就是没有波形输出呀。
代码如下。 RCC->APB1ENR.bit.tiM3EN = 1; // enable clock for TIM3;TIM3CLK=8MHZ??? TIM3->CR1.all = 0; TIM3->CR2.all = 0; TIM3->PSC.all = FCLK_H_MHZ*1000-1; //TIM2_CLK=FCLK_H_MHZ/(FCLK_H_MHZ*1000-1+1)=1ms; TIM3->ARR.all = 100-1; //T=100ms; TIM3->CCR4.all = 50; TIM3->CCER.bit.CC4P = 0; TIM3->CCER.bit.CC4E = 1; TIM3->CR1.bit.DIR = 0; //0=ÏòÉϼÆÊý;1=ÏòϼÆÊý;£» TIM3->CR2.all = 0x0000; // TIM3->DIER.bit.UIE = 1; NVIC->IRQSetEnable0.bit.IRQ29 = 1; // enable TIM3 interrupt TIM3->CR1.bit.CEN = 1; // disable timer3 在main函数使用不使用重映射都不能输出PWM RCC->APB2ENR.bit.AFIOEN = 1; AFIO->MAPR.bit.TIM3_REMAP = 3; //²»Ê¹ÓÃÖØÓ³É书ÄÜ¡£ RCC->APB2ENR.bit.IOPBEN = 1; GPIOB->CRL.bit.MODE1 = 3; GPIOB->CRL.bit.CFN1 = 2; RCC->APB2ENR.bit.IOPCEN = 1; GPIOC->CRH.bit.MODE9 = 3; GPIOC->CRH.bit.CFN9 = 2; |
|
相关推荐
1个回答
|
|
首先,我注意到您的代码中有一些格式问题,例如 "RCC->APB1ENR.bit.TIM3EN = 1;" 和 "TIM3->CR1.all = 0;" 等。我会尝试纠正这些问题并提供一个更清晰的代码示例。以下是配置STM32F100R定时器3通道4的PWM输出的步骤:
1. 启用定时器3的时钟:RCC_APB1ENR中的TIM3EN位设置为1。 2. 禁用定时器3:TIM3_CR1中的CEN位清零。 3. 配置定时器3的工作模式:设置TIM3_CR1中的CMS、DIR和OPM位。 4. 配置定时器3的时钟:设置TIM3_PSC寄存器的值,以确定定时器的时钟频率。 5. 配置定时器3的自动重载寄存器:设置TIM3_ARR寄存器的值,以确定PWM信号的周期。 6. 配置定时器3通道4的比较模式:设置TIM3_CCMR2中的OC4M位。 7. 设置定时器3通道4的PWM占空比:设置TIM3_CCR4寄存器的值。 8. 配置定时器3通道4的输出极性:设置TIM3_CCER中的CC4P位。 9. 启动定时器3:TIM3_CR1中的CEN位设置为1。 以下是修改后的代码示例: ```c RCC_APB1ENR |= (1 << 1); // Enable clock for TIM3 TIM3->CR1 &= ~(1 << 0); // Disable TIM3 TIM3->CR2 = 0; // Reset CR2 TIM3->PSC = (FCLK / 8000000) - 1; // Set prescaler to get 8MHz clock for TIM3 TIM3->ARR = 8000 - 1; // Set auto-reload register to get 1kHz PWM frequency TIM3->CCMR2 = (TIM3->CCMR2 & ~(0xF << 12)) | (6 << 12); // Select PWM mode 2 for channel 4 TIM3->CCR4 = 4000; // Set PWM duty cycle to 50% TIM3->CCER |= (1 << 12); // Set output polarity for channel 4 TIM3->CR1 |= (1 << 0); // Enable TIM3 ``` 请确保您的FCLK值是正确的,以便计算预分频器(PSC)的值。此外,根据您的需求调整ARR和CCR4的值以设置PWM频率和占空比。 如果仍然没有波形输出,请检查您的硬件连接,确保PWM信号正确连接到所需的输出引脚。 |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1506 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1471 浏览 1 评论
875 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
633 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1502 浏览 2 评论
1830浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
571浏览 4评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
481浏览 3评论
476浏览 3评论
stm32cubemx生成mdk-arm v4项目文件无法打开是什么原因导致的?
458浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-10-26 07:48 , Processed in 0.611700 second(s), Total 48, Slave 42 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号