这是一篇入门帖,高手请指点一下,主要是记录我对CANOPEN协议的理解以及使用。图片还没研究好怎么上传,等后面研究好了补上。第一步;新建一个工程,配置好各种时钟之类的。当然你用的是原子的板子, 你也可以拿一个LED实验或者蜂鸣器实验的工程 直接来改,你把其他的注释掉就好了。
第二步;到网上下载CanFestival源码CanFestival-3-10,解压出来,并将文件夹名字改为CanFestival-3-10。移植需要用到的源文件在CanFestival-3-10src目录下,头文件在CanFestival-3-10include目录下。
第三部;开始移植。
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
//中断接收函数
//USB_LP_CAN1_RX0_IRQHandler->HAL_CAN_IRQHandler->CAN_Receive_IT->HAL_CAN_RxCpltCallback
void HAL_CAN_RxCpltCallback(CAN_HandleTypeDef* hcan)
{
__HAL_CAN_CLEAR_FLAG(hcan,CAN_IT_FMP0); //清除标志位
HAL_CAN_Receive_IT(hcan, CAN_FIFO0); //重新开启接收中断
__HAL_CAN_ENABLE_IT(hcan,CAN_IT_FMP0); //使能中断
can_msg.cob_id = hcan->pRxMsg->StdId;
can_msg.rtr = hcan->pRxMsg->RTR;
can_msg.len = hcan->pRxMsg->DLC;
for(uint8_t i =0; i < 8; i++)
can_msg.data = hcan->pRxMsg->Data;
canDispatch(&TestMaster_Data, &can_msg); //处理消息
//printf("HAL_CAN_RxCpltCallbackata[0]= 0x%X,Data[1]=0x%X ",hcan->pRxMsg->Data[0],hcan->pRxMsg->Data[1]);
UART_Mixed_TxTrigger(&muart1,(char *)hcan->pRxMsg->Data,hcan->pRxMsg->DLC);
}
我大概就这么调用的,回头买个USBCAN调试工具再看看情况吧
一周热门 更多>