在线时间2029 小时
UID267320
注册时间2011-3-7
NXP金币1830
TA的每日心情 | 怒 昨天 11:51 |
---|
签到天数: 2116 天 [LV.Master]伴坛终老
金牌会员
- 积分
- 24823
- 最后登录
- 2024-4-30
|
发表于 2019-4-19 14:10:18
|
显示全部楼层
- /*************************************************************************************/
- //CAN发送
- /************************************************************************************/
- byte CanComm(){
- byte i=0;
- dword id=0;
- dword tmp=0;
- byte j;
- id=CAN_Send_ID; // 获得CAN发送ID
- id&=0xFFF0FFFF; // 把ID中的帧序号清零
- for(j=0;j<SheetNum;j++){
- //1800F465-1800F468
- for(i=0;i<5;i++) { // 循环发送5帧
- tmp=i+1; // 帧序号
- tmp<<=16;
- tmp|=id; // 把帧序号添加到ID中,形成完整的ID
- tmp|=0x80000000; //最高位置1,发送扩展帧。
- retCAN=CAN1_SendFrameExt(tmp,DATA_FRAME,8,CANMsgData+i*8+j*40); //发送CAN数据
- Cpu_Delay100US(10);
- }
- id+=1;
- }
- return 0xFF;
- }
复制代码 在调用CAN1_SendFrameExt的时候,第一个参数为要发送的CANID,这个ID的最高位必须为1才会发送扩展帧,也就是这个数据发送前需要或一个0x80000000。如果这个最高位不是1,那么发送的是标准帧。
|
|