280045 LIN模块SCI模式 multi-buffer mode,收/发-查询模式

    初始化----------------------------------------------------------------------------------

CpuSysRegs.PCLKCR19.bit.LIN_A = 1;

    // LIN
    Drv_GPIO_SetupPinMux(33, GPIO_MUX_CPU1, 6);//LIN-A RX
    Drv_GPIO_SetupPinOptions(33, GPIO_INPUT, GPIO_ASYNC);

    Drv_GPIO_SetupPinMux(58, GPIO_MUX_CPU1, 9);//LIN-A TX
    Drv_GPIO_SetupPinOptions(58, GPIO_OUTPUT, GPIO_PUSHPULL);

    //
    // Initialize the LIN module
    //
    LIN_initModule(LINA_BASE);

    //
    // Configure the LIN module to operate in SCI mode
    //
    //
    // Enter LIN reset state to perform configurations
    //
    LIN_enterSoftwareReset(LINA_BASE);

    //
    // Switch LIN into SCI mode
    //
    LIN_enableSCIMode(LINA_BASE);

    //
    // Set the SCI communication mode to idle line
    //
    LIN_setSCICommMode(LINA_BASE, LIN_COMM_SCI_IDLELINE);

    //
    // Set SCI to transmit one stop bit
    //
    LIN_setSCIStopBits(LINA_BASE,LIN_SCI_STOP_ONE);

    //
    // Disable parity check
    //
    LIN_disableSCIParity(LINA_BASE);

    //
    // Disable multi-buffer mode
    //
    LIN_enableMultibufferMode(LINA_BASE);

    //
    // Module set to complete operations when halted by debugger
    //
    LIN_setDebugSuspendMode(LINA_BASE, LIN_DEBUG_COMPLETE);

    //
    // Set character length as 8-bits
    //
    LIN_setSCICharLength(LINA_BASE, 8);

    //
    // Set to 4 character in response field
    //
    LIN_setSCIFrameLength(LINA_BASE, 4);

   //禁止内循环测试

LIN_disableIntLoopback(LINA_BASE);
//开启LIN_TX和LIN_RX引脚,不加这句,无法从外部发送和接受数据   

LIN_enableModule(LINA_BASE);

    //
    // Exit LIN reset state
    //
    LIN_exitSoftwareReset(LINA_BASE);

接收-----------------------------------------------------------------------------------------------------

       if(LinaRegs.SCIFLR.bit.RXRDY == 1)
        {

            objSCIDrv.rxData[0]  =  LinaRegs.LINRD0.bit.RD0;
            objSCIDrv.rxData[1]  = LinaRegs.LINRD0.bit.RD1;
            objSCIDrv.rxData[2]  =  LinaRegs.LINRD0.bit.RD2;
            objSCIDrv.rxData[3]  =  LinaRegs.LINRD0.bit.RD3;
        }

发送------------------------------------------------------------------------------------------------------

 while(LinaRegs.SCIFLR.bit.TXRDY == 0);
            LinaRegs.LINTD0.bit.TD0=0x01;
            LinaRegs.LINTD0.bit.TD1=0x02;
            LinaRegs.LINTD0.bit.TD2=0x03;
            LinaRegs.LINTD0.bit.TD3=0x04;

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值