聪聪哥哥
萤火工场CEM5826-M11测评+03 测试物体识别功能
今天继续和大家分享 CEM5826-M11的 IO口输出监测功能。
使用硬件:STM32U083开发板。
我们查看手册可以看到,该模块引出一个IO口用来监测有无人员流动的功能。
我们可以通过串口工具进行配置如下的工作模式:
led iflag=xx: 设置 led 指示模式,led iflag默认值为 0。当 led ifag=0 时,高电平指示检测到目标,低电平指示未检测到目标。
当led iflag=1时,高电平指示未检测到目标,低电平指示检测到目标。
这里我们使用中断的知识进行配置;
有关中断的帖子,建议大家去看下我之前的帖子,链接如下所示:
NUCLEO-U083RC学习历程6-exit中断学习
https://www.xcc.com/planet/post/4749
这里面分享了STM32中断的一些使用,以及使用STM32cube配置的一些注意事项;
这里我们简单的分享一下,软件的配置图:
这里我使用的引脚是PC10,
使用中断的时候,注意使能中断,还有中断的触发模式等等一些配置信息;
代码分享如下所示:
中断的软件代码初始化:
/*Condiv GPIO pin : PC10 */
GPIO_InitStruct.Pin = GPIO_PIN_10;
GPIO_InitStruct.Mode = GPIO_MODE_IT_FALLING;
GPIO_InitStruct.Pull = GPIO_PULLUP;
HAL_GPIO_Init(GPIOC, &GPIO_InitStruct);
/* EXTI interrupt init*/
HAL_NVIC_SetPriority(EXTI4_15_IRQn, 1, 0);
HAL_NVIC_EnableIRQ(EXTI4_15_IRQn);
中断回调函数如下所示:
void HAL_GPIO_EXTI_Falling_Callback(uint16_t GPIO_Pin)
{
if (GPIO_Pin == GPIO_PIN_10)
{
HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_5);
}
}
中断处理函数:
/**
* @brief This function handles EXTI line 4 to 15 interrupts.
*/
void EXTI4_15_IRQHandler(void)
{
/* USER CODE BEGIN EXTI4_15_IRQn 0 */
/* USER CODE END EXTI4_15_IRQn 0 */
HAL_GPIO_EXTI_IRQHandler(GPIO_PIN_10);
/* USER CODE BEGIN EXTI4_15_IRQn 1 */
/* USER CODE END EXTI4_15_IRQn 1 */
}
实物测试如下:
版块:
萤火工场
2025/02/11 13:40
全部评论