部件号:LAUNCHXL-F2.8377万S
工具/软件:TI C/C++编译器
您好,
我花了两天时间在RX模式下配置CAN。 (TX模式工作正常)
下面是我的代码,基于示例(F2837xS V210)。
我做错了什么,
我将等待您的回答
/*
* v1_main.c
*
*创建日期:2017年21日
*作者:Dariusz
*/
//###################################################################
//
//文件:can_moje_transmit.c
//
//! - CANA位于GPIO71 (CANTXA)和GPIO70 (CANRXA)上
//
//!
//! \b监视变量\n
//! - TXCOUNT -调整以设置要传输的消息数
//! - txMsgCount -用于计算已发送消息数的计数器
//! -rxMsgCount-用于计数收到的消息数
//! - txMsgData -一个包含要发送的数据的数组
//! - rxMsgData -包含已接收数据的数组
//! - errorFlag -表示发生错误的标志
//###################################################################
//###################################################################
//
//包含的文件
//
#include "F28x_Project.h"//设备头文件和示例包括文件
#include <stdint.h>
#include <stdbool.h>
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/HW_CAN.h"
#include "driverlib/can.h"
//RX
unsigned char rxMsgData_103h[4];
tCANMsgObject sRXCANMessage_103h;
Void主(void)
{
//
//初始化系统控制:
// PLL,看门狗,启用外设时钟
//
InitSysCtrl();
//
//为CANTX/CANRX初始化GPIO和配置GPIO引脚
//
伊尼特·格皮奥();
//
//为CAN-A TX/RX设置GPIO引脚多路复用
//
GPIO_SetupPinMux (70,GPIO _MUX_CPU1,5);//GPIO70 - CANRXA
GPIO设置PIN选项(70,GPIO输入,GPIO _异步);
GPIO_SetupPinMux (71,GPIO _MUX_CPU1,5);//GPIO71 - CANTXA
GPIO设置引脚选项(71,GPIO输出,GPIO推送);
//
//初始化CAN控制器
// CANInit (基于CAN地址)
CANInit (Cana_base);
//
//CANBitTimingSet (CAN地址,指向具有时钟参数(pClkParams)的结构)
//
//
//设置CAN源时钟。 选择选项
// CANClkSourceSelect (CAN的基本地址,时钟源) 0-选定的CPU SYSCLKOUT
CANClkSourceSelect(Cana_base, 0);// 500kHz CAN时钟
//
//为CAN设置通信参数
// CANBitRateSet (CAN的基本地址,CAN的时钟频率,以Hz为单位,比特率)
//250kb/s
CANBitRateSet(Cana_base, 2亿, 25万);
//
色调;
//
//将PIE控件寄存器初始化为其默认状态。
//默认状态是禁用所有PIE中断和标志
//被清除。
//
InitPieCtrl();
//
//禁用CPU中断并清除所有CPU中断标志
//
IER = 0x0000;
IFR = 0x0000;
//最小化帧103h
//frame_103h
sRXCANMessage_103h.ui32MsgID = 0x103;// 11或29
sRXCANMessage_103h.ui32Flags = MSG_OBJ_RX_INT_ENABLE;
sRXCANMessage_103h.ui32MsgLen = sizeof(rxMsgData_103h);
sRXCANMessage_103h.pucMsgData = rxMsgData_103h;
CANEnable (Cana_base);
对于(;;)
{
//来自103h帧的数据
CANMessageSet (Cana_base,1,&sRXCANMessage_103h,MSG_OBJ_TYPE_RX);
}
}//结束主
//
//文件结束
//