keil疑难问题解决-STM32输出PWM,软件仿真无波形。

keil疑难问题解决

STM32输出PWM,软件仿真无波形。

其实你只要细心观察就可以发现纵轴的范围为0到65535(0xffff)。这里是因为下图:

在添加采集信号的时候,Signal Display中Display Type设置为了Analog(也就是信号显示类型设置为了模拟信号),并且Display Range中Max=0xFFFF(65535)(也就是说显示的纵轴为从0到65535)。

解决方法:

1.把Display Range中Max设置为1。

2.将Signal Display中Display Type设置为bit。

两种方法选其一即可。

我这里选择的是第二种方法:

 

 

滚动鼠标滑轮将图像放大,可看清

OK,解决问题。

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
Keil5中输出PWM互补波形需要使用STM32的定时器和通道控制器。下面是一个简单的步骤: 1. 首先,选择一个可用的定时器(例如TIM1或TIM2)。 2. 配置定时器的基本参数,例如时钟频率、预分频器和计数器的自动重载值。 3. 配置通道控制器,使其输出PWM波形。此处需要开启互补输出模式,以便产生互补波形。还需要设置PWM的周期和占空比。 4. 将定时器和通道控制器配置为启动状态。 下面是一个简单的代码示例,用于在STM32F103C8T6上输出PWM互补波形: ``` #include "stm32f10x.h" int main(void) { // Enable clock to GPIOA and TIM1 RCC->APB2ENR |= RCC_APB2ENR_IOPAEN | RCC_APB2ENR_TIM1EN; // Configure GPIOA pins as alternate function push-pull GPIOA->CRL |= GPIO_CRL_MODE7_1 | GPIO_CRL_CNF7_1; // PA7 CH1 GPIOA->CRL |= GPIO_CRL_MODE6_1 | GPIO_CRL_CNF6_1; // PA6 CH1N // Configure TIM1 as PWM with complementary outputs TIM1->CCER |= TIM_CCER_CC1E | TIM_CCER_CC1NE; // Enable CH1 and CH1N TIM1->CCMR1 |= TIM_CCMR1_OC1M_2 | TIM_CCMR1_OC1M_1; // PWM mode 1 TIM1->CCMR1 |= TIM_CCMR1_OC1PE; // Preload enable TIM1->CR1 |= TIM_CR1_ARPE; // Auto-reload preload enable TIM1->CR1 |= TIM_CR1_CEN; // Enable timer // Set PWM period and duty cycle TIM1->ARR = 1000; // PWM period (1 kHz) TIM1->CCR1 = 500; // PWM duty cycle (50%) while(1) { // Do something here } } ``` 在这个示例中,我们选择使用TIM1定时器和GPIOA的引脚PA6和PA7作为通道控制器的输出。我们将TIM1配置为PWM模式1,以便输出互补波形。我们还设置了PWM的周期为1kHz,占空比为50%。最后,我们启动了定时器。 请注意,以上示例代码仅供参考,并且可能需要根据您的具体情况进行修改。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值