2. 编程 定时器的初始化函数都已经由CubeMx生成,我们仅需要打开 PWM的使能即可
/** * @brief The application entry point. * @retval int */ 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(); /* USER CODE BEGIN 2 */ HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_1); //1000HZ 50%占空比的PWM HAL_TIM_PWM_Start(&htim1, TIM_CHANNEL_2); //1000HZ 20%占空比的PWM /* USER CODE END 2 */
/* Infinite loop */ /* USER CODE BEGIN WHILE */ while(1) { /* USER CODE END WHILE */
/* USER CODE BEGIN 3 */ } /* USER CODE END 3 */ }
可以使用一下函数修改PWM的占空比
// 使用此宏定义修改占空比
__HAL_TIM_SetCompare(__HANDLE__, __CHANNEL__, __COMPARE__)
例如:
// 将定时器1的通道1 翻转计数修改为 800,在我们的例程上正好就是800/1000 即 80% 的占空比
__HAL_TIM_SET_COMPARE(&htim1, TIM_CHANNEL_1,800);
3. 实验现象
编译并将工程下载到开发板后,使用示波器或者逻辑分析器查看 PA8 和 PB3 引脚是否输出 1000HZ 且占空比分别为 50% 和 20% 的方波。
|