This thread has been locked.
If you have a related question, please click the "Ask a related question" button in the top right corner. The newly created question will be automatically linked to this question.
Hi,
我现在用28035的LIN口配置SCI模式,测试中发现数据格式设置时有点问题。
1、配置为N-8-1和N-8-2格式时(即LinaRegs.SCIGCR1.bit.PARITYENA = 0;)数据发送和接收都正常;
2、配置为O-8-1或E-8-1格式时(即LinaRegs.SCIGCR1.bit.PARITYENA = 1; LinaRegs.SCIGCR1.bit.PARITY= 0;或LinaRegs.SCIGCR1.bit.PARITY= 1;),用串口助手监控时发现下发数据返回值对应不上?
请您试一下
void Init(void) { EALLOW; // This is needed to write to EALLOW protected registers LinaRegs.SCIGCR0.bit.RESET = 0; //Into reset LinaRegs.SCIGCR0.bit.RESET = 1; //Out of reset LinaRegs.SCIGCR1.bit.SWnRST = 0; //Into software reset //SCI Configurations LinaRegs.SCIGCR1.bit.COMMMODE = 0; //Idle-Line Mode LinaRegs.SCIGCR1.bit.TIMINGMODE = 1; //Asynchronous Timing LinaRegs.SCIGCR1.bit.PARITYENA = 1; //Parity Check LinaRegs.SCIGCR1.bit.PARITY = 1; //Even Parity LinaRegs.SCIGCR1.bit.STOP = 0; //One Stop Bit LinaRegs.SCIGCR1.bit.CLK_MASTER = 1; //Enable SCI Clock LinaRegs.SCIGCR1.bit.LINMODE = 0; //SCI Mode LinaRegs.SCIGCR1.bit.SLEEP = 0; //Ensure Out of Sleep LinaRegs.SCIGCR1.bit.MBUFMODE = 1; //Buffered Mode LinaRegs.SCIGCR1.bit.LOOPBACK = 1; //Internal Loopback LinaRegs.SCIGCR1.bit.CONT = 1; //Continue on Suspend LinaRegs.SCIGCR1.bit.RXENA = 1; //Enable RX LinaRegs.SCIGCR1.bit.TXENA = 1; //Enable TX //Ensure IODFT is disabled LinaRegs.IODFTCTRL.bit.IODFTENA = 0x0; //Set transmission length LinaRegs.SCIFORMAT.bit.CHAR = 7; //Eight bits LinaRegs.SCIFORMAT.bit.LENGTH = 7; //Set baudrate LinaRegs.BRSR.bit.SCI_LIN_PSL =194; //9600 bps for SYSCLKOUT = 60 MHz LinaRegs.BRSR.bit.M =5; LinaRegs.SCIGCR1.bit.SWnRST = 1; //bring out of software reset EDIS; while(LinaRegs.SCIFLR.bit.IDLE == 1); LinaRegs.LINTD0.bit.TD0 = 0x01; LinaRegs.LINTD0.bit.TD1 = 0x02; LinaRegs.LINTD0.bit.TD2 = 0x03; LinaRegs.LINTD0.bit.TD3 = 0x04; LinaRegs.LINTD1.bit.TD4 = 0x05; LinaRegs.LINTD1.bit.TD5 = 0x06; LinaRegs.LINTD1.bit.TD6 = 0x07; LinaRegs.LINTD1.bit.TD7 = 0x08; }