欢迎访问 生活随笔!

生活随笔

当前位置: 首页 > 编程资源 > 编程问答 >内容正文

编程问答

AB1601继电器干扰问题

发布时间:2025/3/21 编程问答 33 豆豆
生活随笔 收集整理的这篇文章主要介绍了 AB1601继电器干扰问题 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

当给继电器线圈供电时,控制蜂鸣器的io口有时候无法正确开关。不给继电器线圈供电,就没问题。


进一步测试发现不是干扰问题,是程序方面的问题。1601的所有gpio口共用同一个输出控制寄存器,在中断中有写gpio口的操作,sdk的接口函数也没有做任何针对性处理,导致

写寄存器冲突。在gpio口接口函数中加入临界区保护机制,问题解决。

代码如下:

void DRV_Gpio_ValSet(uint32_t pins_mask, bool is_one)
{
ndis_enter_critical();//临界区保护机制
    if(is_one)
IOMUX.GPIO.reg |= pins_mask;
else
IOMUX.GPIO.reg &= ~pins_mask;
    ndis_exit_critical();
}

总结

以上是生活随笔为你收集整理的AB1601继电器干扰问题的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得生活随笔网站内容还不错,欢迎将生活随笔推荐给好友。