DSP F28335怎么实现两个CAN模块之间的通讯

DSP F28335怎么实现两个CAN模块之间的通讯,第1张

可能由于没有将CANA与CANB用杜邦线连起来,见下图

开发板上面有CAN通冲橘段信接口,对于CANA有CANAL、CANAH,类似伍蠢CANB有CANBL、CANBH,在使用官方的历程前,需要将CANAL与CANBL连起来,同时将CANAH与CANBH连起来,希望帮散誉到大家

以下是程序

#include "DSP2833x_Device.h" // DSP2833x Headerfile Include File

#include "DSP2833x_Examples.h" // DSP2833x Examples Include File

unsigned int Scib_VarRx[100]

unsigned int i

unsigned int Send_Flag

unsigned int RX_Flag

unsigned int TX_Flag

#define InitDIR() \

EALLOW \

GpioCtrlRegs.GPBPUD.bit.GPIO49 = 0 \

GpioCtrlRegs.GPBDIR.bit.GPIO49 = 1 \

GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1\

EDIS

#define RX_EN GpioDataRegs.GPBCLEAR.bit.GPIO49 = 1

#define TX_EN GpioDataRegs.GPBSET.bit.GPIO49 = 1

void InitScib(void){

ScibRegs.SCICTL1.bit.SWRESET =0

ScibRegs.SCICCR.all =0x0007 /渣唤旦/链槐 1 stop bit, No loopback

// No parity,8 char bits,

// async mode, idle-line protocol

ScibRegs.SCICTL1.all =0x0003 // enable TX, RX, internal SCICLK,

// Disable RX ERR, SLEEP, TXWAKE

#if (CPU_FRQ_150MHZ)

ScibRegs.SCIHBAUD=0x0001 // 9600 baud @LSPCLK = 37.5MHz.

ScibRegs.SCILBAUD=0x00E7

#endif

#if (CPU_FRQ_100MHZ)

ScibRegs.SCIHBAUD=0x0001 /如扰/ 9600 baud @LSPCLK = 20MHz.

ScibRegs.SCILBAUD=0x0044

#endif

ScibRegs.SCICTL1.all =0x0023 // Relinquish SCI from Reset

}

int ScibTx_Ready(void){

unsigned int i

TX_Flag = ScibRegs.SCICTL2.bit.TXRDY

if(ScibRegs.SCICTL2.bit.TXRDY == 1)

i = 1

else

i = 0

return(i)

}

int ScibRx_Ready(void){

unsigned int i

RX_Flag = ScibRegs.SCIRXST.bit.RXRDY

if(ScibRegs.SCIRXST.bit.RXRDY == 1)

i = 1

else

i = 0

return(i)

}

void main(void){

InitSysCtrl()

DINT

IER = 0x0000

IFR = 0x0000

InitPieCtrl()

InitPieVectTable()

InitScibGpio()

InitDIR()

InitScib()

for(i = 0i <100i++)

Scib_VarRx[i] = 0

i = 0

Send_Flag = 0

for(){

if(ScibRx_Ready() == 1){

Scib_VarRx[i] = ScibRegs.SCIRXBUF.all

Send_Flag = 1

}

if((ScibTx_Ready() == 1) &&(Send_Flag == 1)){

TX_EN

ScibRegs.SCITXBUF = Scib_VarRx[i]

RX_EN

Send_Flag = 0

i++

if(i >= 100)

i = 0

}

}

}

程序都是存在flash或者ram里面的,不过最终运行时,cla的程序都需要放到L3里面才行。CLA只是个加速散裂,有自己独立的总线,和程序下载没关做掘镇系。所以只需要load一次就够纯粗了。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12375484.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-23
下一篇2023-05-23

发表评论

登录后才能评论

评论列表(0条)

    保存