基于STM32F103C6T6HAL库控制SG90舵机
生活随笔
收集整理的這篇文章主要介紹了
基于STM32F103C6T6HAL库控制SG90舵机
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
材料:
(1)stm32f103c6t6
(2)舵機
一、組裝
舵機原理:
舵機的控制一般需要一個20ms左右的時基脈沖,該脈沖的高電平部分一般為0.5ms-2.5ms范圍內的角度控制脈沖部分,總間隔為2ms。以180度角度伺服為例,那么對應的控制關系是這樣的:
0.5ms------------0度;
1.0ms-----------45度;
1.5ms----------90度;
2.0ms-----------135度;
2.5ms-----------180度;
?
二、主要程序
1、STM32CUBEMX配置如下:?
(1) 配置RCC時鐘:
(2) 時鐘的配置:
?
(3) 配置定時器PWM
?
三、程序?
main.c
int main(void) {/* USER CODE BEGIN 1 *//* USER CODE END 1 *//* MCU Configuration--------------------------------------------------------*//* Reset of all peripherals, Initializes the Flash interface and the Systick. */HAL_Init();/* USER CODE BEGIN Init *//* USER CODE END Init *//* Configure the system clock */SystemClock_Config();/* USER CODE BEGIN SysInit *//* USER CODE END SysInit *//* Initialize all configured peripherals */MX_GPIO_Init();MX_TIM1_Init();MX_TIM2_Init();MX_USART1_UART_Init();/* USER CODE BEGIN 2 */HAL_TIM_PWM_Start(&htim1,TIM_CHANNEL_1);//定時器初始化/* USER CODE END 2 *//* Infinite loop *//* USER CODE BEGIN WHILE */while (1){TIM1->CCR1=250; //20ms有0.5ms高脈沖HAL_Delay(1000);//延時一秒TIM1->CCR1=50; //20ms有2.5ms高脈沖HAL_Delay(1000);//延時一秒/* USER CODE END WHILE *//* USER CODE BEGIN 3 */}/* USER CODE END 3 */ }?
?
總結
以上是生活随笔為你收集整理的基于STM32F103C6T6HAL库控制SG90舵机的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Linux kernel ‘aac_se
- 下一篇: 关于类的符号输入过程第二篇