打印

2812串口发送数据的问题!

[复制链接]
1075|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
beiwaroad|  楼主 | 2013-12-31 22:17 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
beiwaroad|  楼主 | 2013-12-31 22:17 | 只看该作者
下面是我的程序!
#include \"DSP28_Device.h\"

//子程序原型
void scia_init(void);
unsigned int Send_Flag;
unsigned int Sci_VarRx[100];
unsigned i,j;
void main()
{  
    //Step1:初始化系统控制寄存器,PLL,看门狗,时钟位默认状态
    //参照DSP28_SysCtrl.c
    InitSysCtrl();
   
    //Step2:设置GPIO功能
    EALLOW;
    GpioMuxRegs.GPFMUX.all=0x0030;        //设置相应的引脚为SCI引脚
                                          //设置口FMUX-x000 0000 0011 0000
    EDIS;
   
    //Step3:初始化中断向量表(PIE向量表)
    //参照DSP28_PieVect.c文件
    InitPieVectTable();
   
    //Step4:禁止和清除所有CPU中断
        DINT;
        IER=0x0000;
        IFR=0x0000;
        
        //Step6:重新分配中断向量,使能中断
        
        scia_init();        //初始化SCI-A
        
        //Step7:使用DSP向计算机发送数据,用串口调试助手观察现象
        for(j=0;j<100;j++)
        {
           SciaRegs.SCITXBUF = 55;
           while(SciaRegs.SCICTL2.bit.TXRDY == 0)
           {}
        }
        SciaRegs.SCICTL1.bit.TXENA = 0;
}
        
//SCIA串口初始化程序,DLB,8位字,通讯速率设置为0x000F(默认值),
//1个停止位,无校验位
void scia_init()
{
        //系统时钟及其他初始化函数在InitSysCtrl()中实现
            
        SciaRegs.SCICCR.all = 0x0007;        //一个停止位,禁止字测试模式
                                                                    //无校验,8位字符
                                                                    //异步模式,采用空闲线协议
                                                                                    
        SciaRegs.SCICTL1.all = 0x0003;        //使能TX,RX引脚和SCICLK
                                                                    //禁止RX ERR,SLEEP,TXWAKE
                                                                                    
        SciaRegs.SCICTL2.all = 0x00000;        //禁止TXRDY、RXRDY/BRKDT中断
            
        SciaRegs.SCIHBAUD = 0x0000;                //19200 sysclk=150MHz
        SciaRegs.SCILBAUD = 0x00F3;                //LSPCLK时钟频率37.5MHz
            
        SciaRegs.SCICCR.bit.LOOPBKENA = 0;        //禁止字测试模式
        SciaRegs.SCICTL1.all = 0x0023;                //使SCI退出复位状态
        
        PieCtrl.PIEIER9.bit.INTx1 = 1;        //使能SCIA接收中断
        PieCtrl.PIEIER9.bit.INTx2 = 1;        //使能SCIA发送中断
}

使用特权

评论回复
板凳
zhangmangui| | 2014-1-1 12:22 | 只看该作者
有什么问题吗   ?
上班期间可以给你发一下参考代码

使用特权

评论回复
地板
拿起书本| | 2014-1-3 10:28 | 只看该作者
用示波器看看,如果波形正确,接受不正确,那么肯定就是设置的问题了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

86

主题

964

帖子

2

粉丝