安 发表于 2019-1-17 09:36
我使用的时候,会做错误纠正。当检测到错误标志位时,重新初始化对应的模块。 ...
if (HAL_CAN_Receive_IT(hcan, FIFO0) != HAL_OK)
{
Error_Handler();
}
static void Error_Handler(void)
{
while(1)
{
}
}像这样? 不是。比如下面的代码:
if(Systimeout==0 || Systimeout > HAL_GetTick() || HAL_GetTick() - Systimeout >= 60000)
{
MX_USART1_UART_Init();
HAL_UART_Receive_IT(&huart1,RxBuffer,sizeof(RxBuffer));
Systimeout = HAL_GetTick() ;
} 谢谢,受教了。 您好:我在使用can发送接受数据时,也遇到了相似问题,向请问一下
我用can调试电机pid;使能了can中断接受电机返回数据,在定时器中断里计算pid,然后使用can发送函数把数据发下去,但是程序会一直卡死在can发送函数中,但是我把can发送函数写在主函数中,就不会有问题,想请问一下大概是什么原因造成的,该从哪方面下手解决? 尽量减少中断函数的处理时间,我是在中断函数里只接收数据,然后置个标志位,主循环里读取这个标志位然后进行数据处理。
页:
1
[2]