OpenEdv-开源电子网

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

PWM输出实验,软件仿真正常,下到电路上不正常了

[复制链接]

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2016-3-15
在线时间
66 小时
发表于 2017-1-24 23:32:42 | 显示全部楼层 |阅读模式
1金钱
PWM输出实验,初始化函数[mw_shl_code=cpp,true]//pwm输出实验
void TIM3_Pwm_Init(u16 arr,u16 psc)
{
       
       
        TIM_TimeBaseInitTypeDef TIM_TimeBaseInitStruct;
        TIM_OCInitTypeDef TIM_OCInitStruct;       
       

        RCC->APB1ENR=1<<1;  //TIM3时钟使能
        RCC->APB2ENR|=1<<0;  //开启辅助时钟
        RCC->APB2ENR=1<<3;   //开启PB5的时钟
       
       
        //设置PB5为推挽复用输出
        GPIOB->CRL&=0xFF0FFFFF;     
        GPIOB->CRL|=0xFFBFFFFF;
       
       
        AFIO->MAPR&=0xFFFFF3FF;  //清除MAPR的第【11:10】位
        AFIO->MAPR|=1<<11;        //设置TIM3为部分重映射       
       
       
       
        //初始化TIM3
        TIM_TimeBaseInitStruct.TIM_Prescaler=psc;
        TIM_TimeBaseInitStruct.TIM_Period=arr;
        TIM_TimeBaseInitStruct.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInitStruct.TIM_ClockDivision=TIM_CKD_DIV1;
        TIM_TimeBaseInit(TIM3,&TIM_TimeBaseInitStruct);

       
        //初始化TIM3_CH2
        TIM_OCInitStruct.TIM_OCMode=TIM_OCMode_PWM2;
        TIM_OCInitStruct.TIM_OutputState=TIM_OutputState_Enable;
        TIM_OCInitStruct.TIM_OCPolarity=TIM_OCPolarity_High;
        TIM_OC2Init(TIM3, &TIM_OCInitStruct);
       
        TIM_OC2PreloadConfig(TIM3,TIM_OCPreload_Enable);
        TIM_Cmd(TIM3,ENABLE);
}[/mw_shl_code]如下:

主函数:[mw_shl_code=cpp,true] int main(void)
{
        delay_init();                     //延时函数初始化          
        LED_Init();                                   //初始化与LED连接的硬件接口               
        uart_init(115200);
         
         
                timer_Init(4999,7199);
                TIM3_Pwm_Init(899,7199);  
         
        while(1)
        {
                TIM3->CCR2=450;  //高电平占空比50%,持续时间45ms
        }[/mw_shl_code]
第一次下载到电路板后,LED0正常闪烁,仿真的波形也符合预期,就过了。到了下一讲输入捕获实验,按照例程用TIM5_CH1捕获这个脉冲宽度,查看仿真是有波形的,但是仿真串口没有输出,下载到电路板上后LED0的也不正常闪烁,我又把这句代码贴在了while(1)里面循环,重新下载到电路板,仿真的波形还是正常45ms翻转一次,但是电路板上LED0变成了长亮,这是什么情况?


图片

图片

最佳答案

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

我都不仿真,直接硬件测试,很多需要硬件反馈的,没办法仿真。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

4

主题

380

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3088
金钱
3088
注册时间
2015-10-17
在线时间
320 小时
发表于 2017-1-24 23:32:43 | 显示全部楼层
我都不仿真,直接硬件测试,很多需要硬件反馈的,没办法仿真。
回复

使用道具 举报

2

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
477
金钱
477
注册时间
2016-10-21
在线时间
88 小时
发表于 2017-2-15 10:29:59 | 显示全部楼层
想问一下,软件仿真之前,debug里面怎么配置啊。。我一直仿真提示有错误。。
回复

使用道具 举报

12

主题

52

帖子

0

精华

初级会员

Rank: 2

积分
111
金钱
111
注册时间
2016-3-15
在线时间
66 小时
 楼主| 发表于 2017-2-25 22:01:50 | 显示全部楼层
Crime毛豆 发表于 2017-2-15 10:29
想问一下,软件仿真之前,debug里面怎么配置啊。。我一直仿真提示有错误。。

原子的教程里面有,仔细看开发手册哦
回复

使用道具 举报

2

主题

41

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
477
金钱
477
注册时间
2016-10-21
在线时间
88 小时
发表于 2017-2-27 09:19:43 | 显示全部楼层
lijing150123 发表于 2017-2-25 22:01
原子的教程里面有,仔细看开发手册哦

可以仿真,,但是波形仿真不出来。。。一直提醒管教错误,您是F4的板子吗?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-8-23 19:25

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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