OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2270|回复: 7

求助用f407输出pwm个数,示波器显示第一个脉冲波非常长

[复制链接]

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
发表于 2020-4-1 18:28:33 | 显示全部楼层 |阅读模式
1金钱
如题,希望大神指点,帮帮忙,走了太多弯路了。。。
贴代码如下
u16 mubiao=0;
u16 dangqian=0;
void TIM3_Int_Init(void)//把输出口和定时器一起设定
{
     
RCC->AHB1ENR|=1<<1;//GPIOB时钟使能
GPIO_Set(GPIOB,PIN4,GPIO_MODE_AF, 0, GPIO_SPEED_100M, 0);   //设置 pb4 复用输出,100Mhz,上拉
GPIO_AF_Set(GPIOB,4,2);   //设置 PB4 为 AF2
  
RCC->APB1ENR|=1<<1; //TIM3时钟使能
TIM3->PSC=84-1;   //预分频器,使定时器得到1MHz的计数频率
  
TIM3->CR1|=1<<2;           //设置只有计数溢才产生更新中断
TIM3->DMAR|=1<<0;          //允许定时器3计数溢出中断
  TIM3->DIER|=1<<0;        //允许更新中断   
MY_NVIC_Init(0,2,TIM3_IRQn,2); //抢占1,子优先级3,组2

TIM3->CCMR1|=6<<4;   //CH1 PWM1 模式     
TIM3->CCMR1|=1<<3;  //CH1 预装载使能      
TIM3->CCER|=1<<0;    //OC1 输出使能   
TIM3->CCER|=1<<1;    //OC1 低电平有效     
TIM3->CR1|=1<<7;    //ARPE 使能


}
//TIM14 PWM部分初始化
//PWM输出初始化
//arr:自动重装值
//psc:时钟预分频数

void MyTimer3_Startup(u16 num,u16 frequency)//定时器启动
{
mubiao=num;
dangqian=0;
TIM3->ARR=1000000/frequency-1;  //设定重装值
TIM3->CCR1=TIM3->ARR/2;       //CCR1等于重装值一半,是以占空比为50%
TIM3->CR1|=1<<0;              //启动定时器TIM3计数
}
//定时器3中断服务程序
void TIM3_IRQHandler(void)
{                  
if(TIM3->SR&0X0001)//溢出中断
{
   dangqian++;
  if(dangqian==mubiao)
  {
   TIM3->CR1&=~(1<<0);//关闭定时器3
  }
  TIM3->SR=0x0000;                           
}            
}
//通用定时器3中断初始化
//这里时钟选择为APB1的2倍,而APB1为42M
//arr:自动重装值。
//psc:时钟预分频数
//定时器溢出时间计算方法:Tout=((arr+1)*(psc+1))/Ft us.
//Ft=定时器工作频率,单位:Mhz
//这里使用的是定时器3!

int main(void)
{
delay_init(168);   //延时初始化     
Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
  MY_NVIC_Init(0,2,TIM3_IRQn,2); //抢占1,子优先级3,组2
  TIM3_Int_Init();
MyTimer3_Startup(10,500); //1Mhz 的计数频率,500hz的PWM,2ms,10个
  while(1)
{
}
}


343A2D51081C58109A707882465193AA.png

最佳答案

查看完整内容[请看2#楼]

将输出改成默认输出低电平就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165516
金钱
165516
注册时间
2010-12-1
在线时间
2116 小时
发表于 2020-4-1 18:28:34 | 显示全部楼层
将输出改成默认输出低电平就可以了
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
 楼主| 发表于 2020-4-1 18:39:09 | 显示全部楼层
不好意思发错了,应该是f4区,求原子哥指点一下
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
 楼主| 发表于 2020-4-1 18:43:55 | 显示全部楼层
补充说明:图片中的高电平是从低电平升上去的,持续时间长
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
 楼主| 发表于 2020-4-2 16:36:12 | 显示全部楼层
还没解决,可能小白不是很懂,求问一下,我是一开始低平啊
TIM3->CCER|=1<<1;    //OC1 低电平有效     
我改了占空比,示波也不行,
我的端口是PB4,复用为tim3ch1,是不是先先设置gpio第电平??这个意思
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
 楼主| 发表于 2020-4-2 16:36:42 | 显示全部楼层
原子哥看看我
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
 楼主| 发表于 2020-4-2 16:49:34 | 显示全部楼层
C:\Users\12977\Desktop\0FA04E899065C9224456D2232CAADE99.png
回复

使用道具 举报

2

主题

15

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2019-9-20
在线时间
13 小时
 楼主| 发表于 2020-4-2 16:50:09 | 显示全部楼层
..看不到图了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-24 13:35

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表