ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-11-04 18:33:58  阅读:206  来源: 互联网

标签:SCI buffer LIN 模式 BASE mode GPIO LINA


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

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);

LIN_disableMultibufferMode(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, 1);

   //禁止内循环测试

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.SCIRD.all;
        }

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

        while(LinaRegs.SCIFLR.bit.TXRDY == 0);
        LinaRegs.SCITD.all = (uint8)0x04;


 

标签:SCI,buffer,LIN,模式,BASE,mode,GPIO,LINA
来源: https://blog.csdn.net/weixin_38914438/article/details/121148196

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有