器件型号:LAUNCHXL-F28377S
大家好
我想在 PC 计算机和 LaunchPad F28377S 之间建立通信。 我花了很多时间来完成它。
以下是硬件方面的事实:
1) 1)板上的专用金引脚用于 CAN 连接。 此引脚为(CAN-L、CAN-H 和 GND)。 还有总线收发器(SN65HVD234D)。 此器 件的输出为 D (可发送数据 TXD)和 R (可接收数据 RXD)。 通过电阻器 R43和 R44 连接到 处理器引脚:76 (GPIO70 - CANRxA)和 76 (GPIO 71- CANTxA)
有以下软件事实:
1) 1)我分析 了器件类型 F2837xS 的 ControlSuit 示例。
C:\ti\controlSUITE\device_support\F2837xS\V210\F2837xS_Examples_CPU1。
2) 2)我编写了文档 F2837xS-DRL-UG.pdf
3) 3)根据这些信息、我开发了以下 CAN 的软件(仅 CAN 传输功能)。
我无法观察到任何有关 CAN-L 和 CAN-H 的信息 使用示波器、我只看到2、5V 左右的两个信号的值。
因此、我要帮助我解决这个问题。 请指出我的想法有什么错误、我必须走哪条路。
我将等待您的回复。
最好的服务
//######################################################################################################################
#include "F28x_Project.h"//设备头文件和示例 include 文件
#include
#include
#include "inc/hw_types.h"
#include "inc/hw_memmap.h"
#include "inc/hw_ca.h"
#include "driverlib/CAN.h"
unsigned char txMsgData[4];
tCANMsgObject sTXCANMessage;
void main (void)
{
InitSysCtrl();
InitGpio();
GPIO_SetupPinMux (70、GPIO_MUX_CPU1、1);//GPIO70 - CANRXA
GPIO_SetupPinOptions (70、GPIO_INPUT、GPIO_异 步);
GPIO_SetupPinMux (71、GPIO_MUX_CPU1、1);//GPIO71 - CANTXA
GPIO_SetupPinOptions (71、GPIO_OUTPUT、GPIO_PushPull);
CANInit (CANA_base);
//
//CANBitTimingSet (CAN 的地址、指向带有时钟参数(pClkParams)的结构)
//
//
//设置可以提供时钟源。 选择选项
// CANClkSourceSelect (CAN 的基址、时钟源) 0 -所选 CPU SYSCLKOUT
CANClkSourceSelect (CANA_base、0);
//
// CANBitRateSet (CAN 的基址、以 Hz 为单位的 CAN 时钟频率、比特率)
CANBitRateSet (CANA_base、200000000、250000);
Dint;
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
// pMsgObject
sTXCANMessage.ui32MsgID = 0x203;// 11或29
//sTXCANMessage.ui32MsgIDMask = 0;//0x7F8;//无;
sTXCANMessage.ui32Flags = MSG_OBJ_TX_INT_ENABLE;
//sTXCANMessage.ui32Flags = 0;
sTXCANMessage.ui32MsgLen = 4;
sTXCANMessage.pucMsgData = txMsgData;
txMsgData[0]= 0x12;
txMsgData[1]= 0x34;
txMsgData[2]= 0x56;
txMsgData[3]= 0x78;
CANEnable (CANA_base);
for (;;)
{
txMsgData[0]= 0x12;
txMsgData[1]= 0x34;
txMsgData[2]= 0x56;
txMsgData[3]= 0x78;
//
//发送消息
// CANA_base address of CANA
//ObjID----配置1-32的对象编号(邮箱)
//pMsgObject-- 指向包含按摩对象设置的结构的指针、
//eMsgType--- 指示对象的消息类型);
//
CANMessageSet (CANA_base、2、&sTXCANMessage、MSG_OBJ_TYPE_TX);
DELAY_US (1000 * 250);
}
}