OpenEdv-开源电子网

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

仿真有出现波形,但是板子驱动不了舵机

[复制链接]

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2020-6-22
在线时间
17 小时
发表于 2020-11-22 23:07:51 | 显示全部楼层 |阅读模式
3金钱
主函数:
#include "delay.h"
#include "sys.h"
#include "pwm.h"
//ALIENTEK Mini STM32¿a·¢°å·¶ày′úÂë8
//PWMêä3öêμÑé   
//¼¼êõÖ§3Ö£owww.openedv.com
//1ãÖYêDDÇòíμç×ó¿Æ¼¼óDÏT1«Ë¾

int main(void)
{       
        u16 led0pwmval=0;   
        //u8 dir=1;       
         
        delay_init();                     //Ñóê±oˉêy3õê¼»ˉ                                    //3õê¼»ˉóëLEDᬽóμÄó2¼t½ó¿ú
        TIM1_PWM_Init(1439,999);//2»·ÖÆμ¡£PWMÆμÂê=72000/(899+1)=80Khz
         
           while(1)
        {
//led0pwmval=37;
//           TIM_SetCompare1(TIM1,led0pwmval);
//                delay_ms(1000);                               //0¶è£¬Ñóê±1s
//                led0pwmval=60;
//           TIM_SetCompare1(TIM1,led0pwmval);
//                delay_ms(1000);                               //45¶è
//    led0pwmval=93;                        
//           TIM_SetCompare1(TIM1,led0pwmval);
//                delay_ms(1000);                                     //90¶è
                led0pwmval=125;                    
           TIM_SetCompare4(TIM1,led0pwmval);
                delay_ms(1000);                                //135¶è   
         led0pwmval=160;                               
                 TIM_SetCompare4(TIM1,led0pwmval);
                delay_ms(1000);                                //180¶è
        }
}

pwm函数:
#include "pwm.h"

void TIM1_PWM_Init(u16 arr ,u16 psc)
{
        TIM_TimeBaseInitTypeDef         TIM_TimeBaseStructure;
        GPIO_InitTypeDef        GPIO_InitStructure;
        TIM_OCInitTypeDef                TIM_OCInitStrure;
       
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB,ENABLE);//ê1ÄüGPIOD
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1,ENABLE);//ê1Äüê±ÖóTIM4
       
        GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
        GPIO_Init(GPIOA,&GPIO_InitStructure);

        TIM_TimeBaseStructure.TIM_Period= arr;
        TIM_TimeBaseStructure.TIM_Prescaler=psc;
        TIM_TimeBaseStructure.TIM_ClockDivision=0;
        TIM_TimeBaseStructure.TIM_CounterMode=TIM_CounterMode_Up;
        TIM_TimeBaseInit(TIM1,&TIM_TimeBaseStructure);
       
       
        TIM_OCInitStrure.TIM_OCMode=TIM_OCMode_PWM2;
        TIM_OCInitStrure.TIM_OCPolarity=TIM_OCPolarity_High;
        TIM_OCInitStrure.TIM_Pulse=0;
        TIM_OCInitStrure.TIM_OutputState=TIM_OutputState_Enable;
        TIM_OC4Init(TIM1,&TIM_OCInitStrure);
       
        TIM_CtrlPWMOutputs(TIM1,ENABLE);
       
        //GPIO_PinRemapConfig(GPIO_PartialRemap_TIM1,ENABLE);
        TIM_OC4PreloadConfig(TIM1,TIM_OCPreload_Enable);
       
        TIM_ARRPreloadConfig(TIM1,ENABLE);

        TIM_Cmd(TIM1,ENABLE);



}



1606057640(1).jpg
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

24

主题

695

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1666
金钱
1666
注册时间
2016-4-29
在线时间
266 小时
发表于 2020-11-23 10:20:38 | 显示全部楼层
一,要保证舵机是好的。二,用示波器测量对应IO看有没有波形出来,仿真出波形,并不代表IO口就有波形
回复

使用道具 举报

5

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
59
金钱
59
注册时间
2020-6-22
在线时间
17 小时
 楼主| 发表于 2020-11-23 16:43:52 | 显示全部楼层
d1z1y2 发表于 2020-11-23 10:20
一,要保证舵机是好的。二,用示波器测量对应IO看有没有波形出来,仿真出波形,并不代表IO口就有波形

我取试试
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-22 17:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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