产品
void Port8_CS_Handler(void){
printf("Port8 CShotplugIN\r\n");
g_Port8.portstatus =EXIO_Port_CS_CHECK(PORT8);
g_Port8.porttype = EXIO_DIDO_CS_CHECK(PORT8);
if(g_Port8.portstatus == ONLINE)
{
if(g_Port8.porttype == OUTPUT )
{
g_Port8._uIIC = IIC1;
}else{
g_Port8._uIIC = IIC2;
}
//delay for IIC init
DISABLE_INT();
delay_ms(PLUGIN_DELAY);
ENABLE_INT();
int count =20;
while(count-- >0)
{
if (EXIO_Port_CS_CHECK(PORT8) == ONLINE)
{
break;
}
delay_ms(50);
}
if(PCA9555Init(&g_Port8)==IIC_OK)
{
printf("PORT8_IIC init OK\n\r ");
if (g_Port8.porttype == INPUT)
{
U_INPUT inp;
EXGPIO_GetData(PORT8,&inp);
g_Port8.data = inp.data;
}
}else{
printf("PORT8_IIC init error\n\r ");
}
}
}
楼主没有将MCU的配置以及要工作的方式说得具体些。这里猜测是外部中断。这个中断里用了打印和延时,看起来时间很长。再次有中断进来的话,会没有时间去执行。建议你测测这个中断的执行时间,考虑优化一下。
你好,标题可以再编辑一下,问题可以说明一下原因,谢谢!
STMCU-管管 发表于 2021-8-24 16:54
你好,标题可以再编辑一下,问题可以说明一下原因,谢谢!
现在在搭建一个用IO控制的服务器,可是当DI输入状态变化时,有时中断不响应。怀疑是中断屏蔽状态下,有DI中断申请,但被屏蔽,进不了中断。请问是什么原因呢
现在在搭建一个用IO控制的服务器,可是当DI输入状态变化时,有时中断不响应。怀疑是中断屏蔽状态下,有DI中断申请,但被屏蔽,进不了中断。请问是什么原因呢
页:
[1]