找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2246|回复: 0
收起左侧

STM32F4单片机驱动电调程序,并在数码管显示中间量

[复制链接]
ID:520099 发表于 2020-2-10 14:56 | 显示全部楼层 |阅读模式
  初学32,想自制一个四轴,代码独立编写,这个贴是记录pwm控制电调,以及电调的初始化协议,说来曲折,由于刚开始只知道信号50HZ方波,并不知道脉宽(网上查的是1ms最大油门但并不好使),于是刚好手头有个TM1637的数码管,这个数码管也是曲折,网上只有f1的代码,于是又进行移植,采用I2C通信协议,中间量便显示在数码管上,经过验证,2ms最低油门,3ms最高油门,是亿航的拆机电调,代码已上传,主函数如下KEY0加速 KEY1减速
int main(void)
{
    u16 led0pwmval=16;   
  u8 key;           //保存键值   
    u8 dir=1;
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//设置系统中断优先级分组2
    delay_init(168);  //初始化延时函数
    KEY_Init();       //初始化与按键连接的硬件接
    TM1637_Init();
    uart_init(115200);//初始化串口波特率为115200
     TIM14_PWM_Init(168-1,10000-1);        
   while(1)
    {
        key=KEY_Scan(0);        //得到键值
           if(key)
        {                           
            switch(key)
            {                 
               
                case KEY0_PRES:    //控制LED0翻转
                    led0pwmval++;
                    break;
                case KEY1_PRES:    //控制LED1翻转     
                    led0pwmval--;
                    break;
            }
        }else delay_ms(10);
        TIM_SetCompare1(TIM14,led0pwmval);   
        TM1637_NixieTubeDisplay();
        TM1637_NixieTubeDisplayChar(0,0);
        TM1637_NixieTubeDisplayChar(0,1);
        TM1637_NixieTubeDisplayChar(led0pwmval/10,2);//第三位显示3
        TM1637_NixieTubeDisplayChar(led0pwmval%10,3);//第四位显示4
    }
}


PWM输出实验.7z

298.23 KB, 下载次数: 25, 下载积分: 黑币 -5

评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

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

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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