8路舵機都可控制,在買pca9685驅動之前寫的一部分,只用了2個定時器,如果只用舵機還可以接受,否則太懶費資源,
stm32調試舵機8路全用定時器(庫函數)
單片機源程序如下:
- #include "led.h"
- #include "delay.h"
- #include "key.h"
- #include "sys.h"
- #include "usart.h"
- #include "timer.h"
-
- /************************************************
- ALIENTEK戰艦STM32開發板實驗9
- PWM輸出實驗
- ************************************************/
-
- int main(void)
- {
- delay_init(); //延時函數初始化
- KEY_Init();
- uart_init(115200); //串口初始化為115200
- TIM4_PWM_Init(199,7199);
- TIM3_PWM_Init(199,7199);
-
- TIM_SetCompare1(TIM4,5);// GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; D
- TIM_SetCompare2(TIM4,5);
- TIM_SetCompare3(TIM4,5);
- TIM_SetCompare4(TIM4,5);
- TIM_SetCompare1(TIM3,5);//GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; C
- TIM_SetCompare2(TIM3,5);
- TIM_SetCompare3(TIM3,5);
- TIM_SetCompare4(TIM3,5);
- while(1)
- {
- if(KEY0==0)
- {
- TIM_SetCompare1(TIM4,10); //45度
- TIM_SetCompare1(TIM3,10);
- }
- if(KEY1==0)
- {
- TIM_SetCompare2(TIM4,15); //90度
- TIM_SetCompare2(TIM3,15);
- }
- if(KEY2==0)
- {
- TIM_SetCompare3(TIM4,20); //135度
- TIM_SetCompare3(TIM3,20);
- }
- if(WK_UP==1)
- {
- TIM_SetCompare4(TIM4,25); //180度
- TIM_SetCompare4(TIM3,25);
- }
- }
- }
復制代碼
所有資料51hei提供下載:
stm32調試舵機8路全用定時器(庫函數).7z
(185.68 KB, 下載次數: 90)
2022-11-22 03:14 上傳
點擊文件名下載附件
|