打印
[STM32F1]

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

[复制链接]
2167|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 | 只看该作者
领导要求你也可以把那些魔鬼数改成宏定义
而且那些宏都是定义好了的,并不需要你再去写了

使用特权

评论回复
5
mmuuss586| | 2017-4-27 12:46 | 只看该作者
看寄存器好像没啥问题啊;

可以先用库函数先调通

使用特权

评论回复
6
wozaihuayu| | 2017-4-27 14:51 | 只看该作者
本帖最后由 wozaihuayu 于 2017-4-27 15:09 编辑
光林火叶 发表于 2017-4-27 11:38
主要是领导要求,能帮忙看一下吗

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

使用特权

评论回复
7
crazyren| | 2017-4-27 17:01 | 只看该作者
这代码风格很难读。
先找个例程跑跑看,网上一大堆,排除硬件问题

使用特权

评论回复
8
光林火叶|  楼主 | 2017-4-27 20:15 | 只看该作者
wozaihuayu 发表于 2017-4-27 14:51
你这个main函数怎么上来直接就是pwm_init?系统时钟不用初始化吗?

Stm32_Clock_Init(9);加上系统时钟吗?也试过了,不行

使用特权

评论回复
9
光林火叶|  楼主 | 2017-4-27 20:17 | 只看该作者
crazyren 发表于 2017-4-27 17:01
这代码风格很难读。
先找个例程跑跑看,网上一大堆,排除硬件问题

用库函数跑了,硬件没有问题,就是用寄存器不知道是少设置什么了,还是哪里出问题了,就是出不来

使用特权

评论回复
10
wozaihuayu| | 2017-4-28 09:29 | 只看该作者
库函数跑通了。就看看看库函数里寄存器是怎么实现的,一步一步的拿你的代码和库函数的对,肯定能找到的!

使用特权

评论回复
11
wozaihuayu| | 2017-4-28 09:33 | 只看该作者
如果其他你觉得都对,就是有问题的话,你就试试把工程clean一下,然后重新编译试试!

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

4

帖子

0

粉丝