主机dsp设置为接收状态,应用定时器中断,每两秒中断一次进入发送状态,发送完数据之后重新回到接收状态
主机dsp主程序:
void main()
{
Uint16 ReceivedChar;
char *msg;
InitSysCtrl();
InitPieCtrl();
IER = 0x0000;
IFR = 0x0000;
InitPieVectTable();
int i=0;
LED_Init();
RS485_DIR_SETL;
DELAY_US(5);
ScibRegs.SCICTL1.bit.SWRESET=0;
DELAY_US(2);
ScibRegs.SCICTL1.bit.SWRESET=1;
TIM0_Init(150,5000000);//200ms
RS485_Init(9600);
int o=0;
for(o=0;o<=5;o++){
while(ScibRegs.SCIRXST.bit.RXRDY !=1){
ReceivedChar=ScibRegs.SCIRXBUF.all;
LED4_TOGGLE;
b[o]=ReceivedChar;
if(o==5){o=0;}
}
}
}
定时器部分
interrupt void TIM0_IRQn(void)
{
//int o=0;
RS485_DIR_SETH;
DELAY_US(5);
EALLOW;
LED1_TOGGLE;
crc_check = CRC_check(a,4);
for(j=0;j<=5;j++){
if(j==4){
a[j]=(crc_check>>8);
}
if(j==5){
a[j]=(crc_check & 0x00ff);
}
RS485_SendByte(a[j]);
if(j==3){j=0;}
RS485_DIR_SETL;
DELAY_US(5);
ScibRegs.SCICTL1.bit.SWRESET=0;
DELAY_US(2);
ScibRegs.SCICTL1.bit.SWRESET=1;
}
dsp萌新求助,求大佬帮忙看看代码QAQ!!!
你好,我是有问必答小助手,非常抱歉,本次您提出的有问必答问题,技术专家团超时未为您做出解答
本次提问扣除的有问必答次数,将会以问答VIP体验卡(1次有问必答机会、商城购买实体图书享受95折优惠)的形式为您补发到账户。
因为有问必答VIP体验卡有效期仅有1天,您在需要使用的时候【私信】联系我,我会为您补发。