当前位置: 首页> 教育> 高考 > 国家高新技术企业申请条件_重庆市建筑从业人员信息网_网络营销策划案_seo关键词排名优化

国家高新技术企业申请条件_重庆市建筑从业人员信息网_网络营销策划案_seo关键词排名优化

时间:2025/7/13 20:51:45来源:https://blog.csdn.net/shjhuang/article/details/145650402 浏览次数:0次
国家高新技术企业申请条件_重庆市建筑从业人员信息网_网络营销策划案_seo关键词排名优化

1. 问题来源:RS485通信时,且数据量大、持续运行一段时间后,发现RS485使能引脚没有得到释放,导致总线锁死,无法通信,影响到整个总线的设备。

2. 问题分析:1)经过测试和跟踪,使能脚的释放指令已经执行,但是引脚实际并没有生效。2)网上找到的资料说是端口竞争冒险问题,在发生中断后可能发生无法有效控制的情况,与本次现象很相似。

3. 解决办法:

修改前使用的GPIO控制函数为:

en_result_t Gpio_WriteOutputIO(en_gpio_port_t enPort, en_gpio_pin_t enPin, boolean_t bVal)

修改后使用的GPIO控制函数为:

en_result_t Gpio_ClrIO(en_gpio_port_t enPort, en_gpio_pin_t enPin)
{SetBit(((uint32_t)&M0P_GPIO->PABCLR + enPort), enPin, TRUE);return Ok;
}
en_result_t Gpio_SetIO(en_gpio_port_t enPort, en_gpio_pin_t enPin)
{SetBit(((uint32_t)&M0P_GPIO->PABSET + enPort), enPin, TRUE);return Ok;
}

以上适用于HC32F1XX系列,有置位和复位寄存器的MCU,且官方代码提供对应的函数。

但是HC32F005的DLL库里并没有上述的函数,且MCU也没有对应置位、清除寄存器,所以不适用上述的函数。

手动添加函数为:

en_result_t Gpio_SetIO(en_gpio_port_t enPort, en_gpio_pin_t enPin)
{SetBit(((uint32_t)&M0P_GPIO->P0OUT + enPort), enPin, TRUE);return Ok;
}
en_result_t Gpio_ClrIO(en_gpio_port_t enPort, en_gpio_pin_t enPin)
{SetBit(((uint32_t)&M0P_GPIO->P0OUT + enPort), enPin, FALSE);retu

4. 总结,对于HC32F003、HC32F005等低端MCU,应避免频繁中断导致参数传递异常,从而解决问题。

5. 实际测试:运行两天后,问题再次复现!!!崩溃!

关键字:国家高新技术企业申请条件_重庆市建筑从业人员信息网_网络营销策划案_seo关键词排名优化

版权声明:

本网仅为发布的内容提供存储空间,不对发表、转载的内容提供任何形式的保证。凡本网注明“来源:XXX网络”的作品,均转载自其它媒体,著作权归作者所有,商业转载请联系作者获得授权,非商业转载请注明出处。

我们尊重并感谢每一位作者,均已注明文章来源和作者。如因作品内容、版权或其它问题,请及时与我们联系,联系邮箱:809451989@qq.com,投稿邮箱:809451989@qq.com

责任编辑: