找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3064|回复: 3
收起左侧

STM32F429驱动PCA9685舵机驱动板 源程序

[复制链接]
ID:313571 发表于 2019-7-20 19:39 | 显示全部楼层 |阅读模式
STM32F429阿波罗驱动PCA9685舵机驱动板根据这个修改https://blog.csdn.net/MarkSoviet/article/details/79841366
IMG_0258.JPG
单片机源程序如下:
  1. #include "sys.h"
  2. #include "delay.h"
  3. #include "usart.h"
  4. #include "led.h"
  5. #include "timer.h"
  6. #include "pca9685.h"
  7. #include "myiic.h"
  8. #include "key.h"


  9. int main(void)
  10. {
  11.     u8 dir=1,key;
  12.     u16 led0pwmval=0,pwm,pwm1;  
  13.     HAL_Init();                     //初始化HAL库   
  14.         IIC_Init();
  15.         KEY_Init();
  16.     Stm32_Clock_Init(360,25,2,8);   //设置时钟,180Mhz
  17.     delay_init(180);                //初始化延时函数
  18.     uart_init(115200);              //初始化USART
  19.     LED_Init();                     //初始化LED
  20.     TIM3_PWM_Init(20000-1,90-1);      //90M/90=1M的计数频率,自动重装载为500,那么PWM频率为1M/500=2kHZ
  21.         PCA9685_write(PCA9685_MODE1,0x0);//PCA9685复位
  22.         setPWMFreq(52);//实测频率为输入值-2
  23.     while(1)
  24.     {
  25.                 key=KEY_Scan(0);
  26. //                if(dir)led0pwmval++;                                //dir==1 led0pwmval递增
  27. //                else led0pwmval--;                                //dir==0 led0pwmval递减
  28. //                if(led0pwmval>300)dir=0;                        //led0pwmval到达300后,方向为递减
  29. //                if(led0pwmval==0)dir=1;                        //led0pwmval递减到0后,方向改为递增
  30.                 TIM_SetTIM3Compare4(18000);        //修改比较值,修改占空比
  31.                                                 
  32.                 switch(key)
  33.                 {                                 
  34.                         case  WKUP_PRES:
  35.                                                 setPWM(0, 0, calculate_PWM(0));
  36.                                                 break;
  37.                         case  KEY2_PRES:
  38.                                                 setPWM(0, 0, calculate_PWM(90));
  39.                                                 break;
  40.                         case  KEY1_PRES:
  41.                                                 setPWM(0, 0, calculate_PWM(45));
  42.                                                 break;
  43.                         case  KEY0_PRES:       
  44.                                                 setPWM(0, 0, calculate_PWM(30));
  45.                                                 break;
  46.                 }
  47.     }
  48. }
复制代码

所有资料51hei提供下载:
PCA9685舵机控制.7z (528.26 KB, 下载次数: 60)

评分

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

查看全部评分

回复

使用道具 举报

ID:484435 发表于 2019-8-4 16:17 | 显示全部楼层
谢谢分享
回复

使用道具 举报

ID:218912 发表于 2019-9-5 16:41 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

ID:428508 发表于 2019-9-17 21:34 | 显示全部楼层
谢谢楼主分享
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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