[STM32F1] 请帮忙看下为什么我stm32的pwm输出,用示波器量PA7口只有高电平输出,没有波形输出

[复制链接]
2508|10
 楼主| 光林火叶 发表于 2017-4-27 09:05 | 显示全部楼层 |阅读模式
#include "stm32f10x.h"
void PWM_Init(u16 arr,u16 psc)
{
RCC->APB1ENR|=1<<1;
RCC->APB2ENR|=1<<2;
GPIOA->CRL&=0x0FFFFFFF;
GPIOA->CRL|=0x30000000;
GPIOA->ODR|=1<<7;
TIM3->ARR=arr;
TIM3->PSC=psc;
TIM3->CCMR1|=7<<12;
TIM3->CCMR1|=1<<11;
TIM3->CCER|=1<<4;
TIM3->CR1=0x0080;
  TIM3->CR1|=0x01;
}


int main(void)
{
PWM_Init(899,0);
while(1)
{}
}
wozaihuayu 发表于 2017-4-27 10:55 | 显示全部楼层
寄存器做的不好找问题,建议用库函数啊!或者用STM32CUBEMX自动生成,省时省心!
 楼主| 光林火叶 发表于 2017-4-27 11:38 | 显示全部楼层
wozaihuayu 发表于 2017-4-27 10:55
寄存器做的不好找问题,建议用库函数啊!或者用STM32CUBEMX自动生成,省时省心! ...

主要是领导要求,能帮忙看一下吗
lxyppc 发表于 2017-4-27 12:02 来自手机 | 显示全部楼层
领导要求你也可以把那些魔鬼数改成宏定义
而且那些宏都是定义好了的,并不需要你再去写了
mmuuss586 发表于 2017-4-27 12:46 | 显示全部楼层
看寄存器好像没啥问题啊;

可以先用库函数先调通
wozaihuayu 发表于 2017-4-27 14:51 | 显示全部楼层
本帖最后由 wozaihuayu 于 2017-4-27 15:09 编辑
光林火叶 发表于 2017-4-27 11:38
主要是领导要求,能帮忙看一下吗

你这个main函数怎么上来直接就是pwm_init?系统时钟不用初始化吗?

crazyren 发表于 2017-4-27 17:01 | 显示全部楼层
这代码风格很难读。
先找个例程跑跑看,网上一大堆,排除硬件问题
 楼主| 光林火叶 发表于 2017-4-27 20:15 | 显示全部楼层
wozaihuayu 发表于 2017-4-27 14:51
你这个main函数怎么上来直接就是pwm_init?系统时钟不用初始化吗?

Stm32_Clock_Init(9);加上系统时钟吗?也试过了,不行
 楼主| 光林火叶 发表于 2017-4-27 20:17 | 显示全部楼层
crazyren 发表于 2017-4-27 17:01
这代码风格很难读。
先找个例程跑跑看,网上一大堆,排除硬件问题

用库函数跑了,硬件没有问题,就是用寄存器不知道是少设置什么了,还是哪里出问题了,就是出不来
wozaihuayu 发表于 2017-4-28 09:29 | 显示全部楼层
库函数跑通了。就看看看库函数里寄存器是怎么实现的,一步一步的拿你的代码和库函数的对,肯定能找到的!
wozaihuayu 发表于 2017-4-28 09:33 | 显示全部楼层
如果其他你觉得都对,就是有问题的话,你就试试把工程clean一下,然后重新编译试试!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部