完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
我想实现通过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_IRQHandlerrn");HAL_LPTIM_IRQHandler(&hlptim1); } void HAL_LPTIM_AutoReloadMatchCallback(LPTIM_HandleTypeDef *hlptim) { if(hlptim->Instance == LPTIM1) { //xa0 xa0 xa0 xa0 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:%drn",pulse_count); Uart3_SendCmdStr(data_pulse); Uart3_SendCmdStr((uint8_t *)"timeoverrn"); Clear_Buffer3(); //HAL_LPTIM_Counter_Start_IT(&hlptim1,10); } } void EXTI0_IRQHandler(void) { HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_0); } |
|
相关推荐
2个回答
|
|
|
|
|
|
|
|
|
在STM32L431RCT6中使用LPTIM(低功耗定时器)时,如果每次初始化后立即进入中断,可能是由于以下几个原因导致的: 1. LPTIM配置问题
2. 中断配置问题
3. GPIO配置问题
4. 硬件问题
示例代码以下是一个简单的LPTIM配置示例,供参考: 调试建议
通过以上步骤,应该能够找到并解决问题。如果问题仍然存在,建议进一步检查硬件连接和STM32的参考手册,确保配置符合要求。 |
|
|
|
|
只有小组成员才能发言,加入小组>>
stm32mp157的异核通信的rpmsg_sdb的m4固件和a7驱动该如何编写?
1447 浏览 0 评论
stm32f103用freertos对一个采样率为1kHz的传感器,进行采样,数据出差
1494 浏览 0 评论
请教:在使用UDE STK时,单片机使用SPC560D30L1,在配置文件怎么设置或选择?里面只有SPC560D40的选项
3641 浏览 1 评论
3834 浏览 1 评论
请问是否有通过UART连接的两个微处理器之间实现双向值交换的方法?
2454 浏览 1 评论
STM32H7打开DCache后,出现了串口接收信息为空的现象,是哪里出了问题?
727浏览 5评论
用NANO STM32F103RBT6的开发板烧录不了是哪里出了问题?
658浏览 5评论
710浏览 5评论
外部中断触发类型为双边沿触发,进入中断回调后有什么办法判断该边沿是上升沿还是下降沿?
940浏览 5评论
STM32L071CBT6低温环境下无法正常工作是什么原因引起的?
744浏览 5评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-1 19:07 , Processed in 0.751114 second(s), Total 79, Slave 61 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖
2036