调用HAL来控制定时器,应该是CubeMX必须走的道路:在CubeMX中需要如何设定?如何利用callback来进行调用?如何计算1S的定时
简述STM32定时器的计数器模式、
中断设置必须打开,才能有中断,从而,才能有中断处理,才有中断回调函数的执行。
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_TIM3_Init();MX_TIM1_Init();MX_TIM4_Init();/* USER CODE BEGIN 2 *//*##-2- Register a callback function #######################################*/if (HAL_TIM_RegisterCallback(&htim1,HAL_TIM_PERIOD_ELAPSED_CB_ID,(pTIM_CallbackTypeDef)HAL_Callback_LED_Blink) != HAL_OK){/* Starting Error */Error_Handler();}// it is not a interrupt timer HAL_TIM_Base_Start(&htim1); // Start timer1 Base 1S/*##-3- Start the TIM Base generation in interrupt mode ####################*/
/* Start Channel1 */
if (HAL_TIM_Base_Start_IT(&htim1) != HAL_OK)
{
/* Starting Error */
Error_Handler();
}
注意,这里我们使用的是TIMER的中断,那么时基的开始函数是:
HAL_TIM_Base_Start_IT
redis使用实例,要加IT ,INTERRUPT的后缀,否则是不会来中断的!!!
Call back 函数里面调用GPIO口的设定工作:
void HAL_Callback_LED_Blink(TIM_HandleTypeDef *htim)
{// HAL_GPIO_WritePin(LED_INFO_GPIO_Port, LED_INFO_Pin, GPIO_PIN_SET);HAL_GPIO_TogglePin(LED_INFO_GPIO_Port,LED_INFO_Pin);
}
版权声明:本站所有资料均为网友推荐收集整理而来,仅供学习和研究交流使用。
工作时间:8:00-18:00
客服电话
电子邮件
admin@qq.com
扫码二维码
获取最新动态