标题: STM32F429驱动PCA9685舵机驱动板 源程序 [打印本页]

作者: 李江勇    时间: 2019-7-20 19:39
标题: STM32F429驱动PCA9685舵机驱动板 源程序
STM32F429阿波罗驱动PCA9685舵机驱动板根据这个修改https://blog.csdn.net/MarkSoviet/article/details/79841366

单片机源程序如下:
  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)



作者: 迁就    时间: 2019-8-4 16:17
谢谢分享
作者: guweimin110    时间: 2019-9-5 16:41
谢谢楼主分享
作者: lyh01    时间: 2019-9-17 21:34
谢谢楼主分享




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1