28333_TMS320F28335_SCI串口发送接收

线性驱动器/***************************************************************************
        SCI发送接收初始化程序
         
油底壳垫****************************************************************************/
#include "../include\DSP2833x_Device.h"
#include "../Task\Task_Global_h.h"
/***************************************************************************/                                                                       
/*****************************************************************************cng加气机
        SCI_B 中断函数
                                                   
*****************************************************************************/
interrupt void SciB_Txd_ISR2000(void)  //中断函数
{
    Uint16 ax;
    Sys.Cpld.CpldOutputReg3 |= 0x0100;    // 接收 状态
    Cpld_Reg3 = Sys.Cpld.CpldOutputReg3;
    ScibRegs.SCIFFTX.bit.TXFFIENA = 0;
    ScibRegs.SCIFFTX.bit.TXFFINTCLR = 1;
    PieCtrlRegs.PIEACK.bit.ACK9 = 1;
    ax = (ScibRegs.SCIRXST.all & 0x009c);
    if(ax != 0)    // 接收器错误
    {
        SCI_Init2000((void *)&ScibRegs, 67.5, 19200);
    }
}
interrupt void SciB_Txd_ISR3000(void)  //中断函数
{
    Uint16 ax;
    Sys.Cpld.CpldOutputReg3 |= 0x0100;    // 接收 状态
    Cpld_Reg3 = Sys.Cpld.CpldOutputReg3;
    ScibRegs.SCIFFTX.bit.TXFFIENA = 0;
    ScibRegs.SCIFFTX.bit.TXFFINTCLR = 1;
    PieCtrlRegs.PIEACK.bit.ACK9 = 1;
    ax = (ScibRegs.SCIRXST.all & 0x009c);
    if(ax != 0)    // 接收器错误
    {
功夫面        SCI_Init((void *)&ScibRegs, 67.5, 19200);
    }
}
/****************************************************************************                                                                       
                 
        串口初始化,输入 参数:SCI端口,时钟频率,波特率                                   
                                                                         
****************************************************************************/
void SCI_Init2000(struct SCI_REGS *SCI, float LSPCLK, float Baud)
{
    Uint16 ax;
/* loopback  8 bit data */                                   
    SCI->SCICCR.all  = 0x0f;
    SCI->SCICTL1.all = 0x03;
    SCI->SCICTL2.all = 0x00;
    ax = (Uint16)((LSPCLK * 1000000) / (8 * Baud) - 1);
    SCI->SCIHBAUD = (ax >> 8) & 0x00ff;   
    SCI->SCILBAUD = ax & 0x00ff;
    SCI->SCIFFTX.all = 0x4000;
    SCI->SCIFFTX.all|= 0x2000;
    SCI->SCIFFTX.all|= 0x8000;
   
    SCI->SCIFFRX.all = 0x4040;
    SCI->SCIFFRX.bit.RXFIFORESET = 1;       
    SCI->SCIFFCT.all = 0x0003;    // 4周期延迟
    SCI->SCIPRI.bit.FREE = 1;
   
// 重新使能SCI   
    SCI->SCICTL1.all = 0x23;
}
/****************************************************************************
                                                                     
        接收通信数据                                   
        Number 是发送的数据个数
        数据指针为发送数据保存的地址
****************************************************************************/
void UartTxdbit8_RS485(struct SCI_REGS *SCI, Uint16 *Sbuf, Uint16 Number)
{
    Uint16 Temp = 0;
    while(Temp < Number)
    {
        if(SCI->SCIFFTX.bit.TXFFST == 0x10)
秸秆人造板        {
            OSTimeDly(3);    // 发送数据满FIFO,延时 3 ms
        }else
热熔铜螺母        {
            do{
                SCI->SCITXBUF = Sbuf[Temp++];
            }while((Temp < Number)&&(SCI->SCIFFTX.bit.TXFFST < 0x10));
        }
    }
    SCI->SCIFFTX.bit.TXFFINTCLR = 1;
    SCI->SCIFFTX.bit.TXFFIENA = 1;    // 开中断
    while((SCI->SCICTL2.bit.TXEMPTY == 0)    // 数据没有发送完
        ||(SCI->SCICTL2.bit.TXRDY == 0)        // 缓冲器满
        ||(SCI->SCIFFTX.bit.TXFFST != 0))    // FIFO 不是空的
    {
        OSTimeDly(1);    // 没发送完,延时 1 ms
    }
}
/****************************************************************************
                                                                     
        接收通信数据                                   
        返回的是收到的数据个数,0 代表没有返回值
        指针为返回数据保存的地址
****************************************************************************/

本文发布于:2024-09-21 15:51:01,感谢您对本站的认可!

本文链接:https://www.17tex.com/tex/1/197753.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:数据   发送   端口   保存   接收   输入   指针
留言与评论(共有 0 条评论)
   
验证码:
Copyright ©2019-2024 Comsenz Inc.Powered by © 易纺专利技术学习网 豫ICP备2022007602号 豫公网安备41160202000603 站长QQ:729038198 关于我们 投诉建议