我想实现通过lptim的输入引脚gpio0电平变化产生脉冲,通过lptim的计数,达到设定值后进入中断,进行操作,但每次初始化就进入中断,不知道哪里有问题麻烦大佬们帮我看一下。 void Lptim_GPIO_Init(void) { GPIO_InitTypeDef GPIO_InitStruct = {0}; // 修改对应时钟 __HAL_RCC_GPIOC_CLK_ENABLE(); // 配置 正确的引脚为外部中断输入(或者配置为外部触发信号引脚) GPIO_InitStruct.Pin = GPIO_PIN_0; GPIO_InitStruct.Mode = GPIO_MODE_IT_RISING; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_LOW; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); HAL_NVIC_SetPriority(EXTI0_IRQn,1, 2); HAL_NVIC_EnableIRQ(EXTI0_IRQn); } void MX_LPTIM1_Init(void) { __HAL_RCC_LPTIM1_CLK_ENABLE(); hlptim1.Instance = LPTIM1; hlptim1.Init.Clock.Source = LPTIM_CLOCKSOURCE_APBCLOCK_LPOSC; // 使用内部低速时钟 hlptim1.Init.Clock.Prescaler = LPTIM_PRESCALER_DIV1; // 不分频 hlptim1.Init.Trigger.Source = LPTIM_TRIGSOURCE_SOFTWARE; // 软件触发 hlptim1.Init.OutputPolarity = LPTIM_OUTPUTPOLARITY_HIGH; // 输出极性 hlptim1.Init.UpdateMode = LPTIM_UPDATE_IMMEDIATE; // 立即更新 hlptim1.Init.CounterSource = LPTIM_COUNTERSOURCE_EXTERNAL; // 外部时钟源(GPIO0电平变化) hlptim1.Init.Input1Source = LPTIM_INPUT1SOURCE_GPIO; // GPIO0作为输入源 hlptim1.Init.Input2Source = LPTIM_INPUT2SOURCE_GPIO; // 不使用 if (HAL_LPTIM_Init(&hlptim1) != HAL_OK) { Error_Handler(); } HAL_NVIC_SetPriority(LPTIM1_IRQn, 1, 1); HAL_NVIC_EnableIRQ(LPTIM1_IRQn); HAL_LPTIM_Counter_Start_IT(&hlptim1,30); } void LPTIM1_IRQHandler(void) { Uart3_SendCmdStr((uint8_t *)"PTIM1_IRQHandler\r\n"); HAL_LPTIM_IRQHandler(&hlptim1); } void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim) { if(hlptim->Instance == LPTIM1) { // HAL_LPTIM_Counter_Stop_IT(&hlptim1); pulse_count = HAL_LPTIM_ReadCounter(&hlptim1); // 获取当前计数器值 uint8_t data_pulse[50] = {0}; snprintf(data_pulse,sizeof(data_pulse),"pluse_data2:%d\r\n",pulse_count); Uart3_SendCmdStr(data_pulse); Uart3_SendCmdStr((uint8_t *)"timeover\r\n"); Clear_Buffer3(); //HAL_LPTIM_Counter_Start_IT(&hlptim1,10); } } void EXTI0_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); } |
使用STM32L451CEU6型号的芯片,在用usart(PA9、PA10)进行串口通信时,发送0x55在PC端可以收到正确的数据,但是发送0x80会收到0x00的数据,发送0x01会收到0x7F的数据,串口助手的配置和CubeMX上的配置参数是一样的(都是115200,8N1),请问各位这个是什么原因呀?
两块SRAM分别位于不同的基地址,有什么方法可以使这两块区域SRAM当成一块使用
串口接收函数跑几天就进不去了
STM32L476 HAL_FLASHEx_Erase() 问题
SD卡格式化出错
STM32用户手册哪里下载 哪里有分类的
怎么将HAL库转为LL库。
为什么STM32L496RG第一次烧写程序后需要重新上下电才能正常执行程序?
ble hid
ble hid