SCI

来源:互联网 发布:java开发框架 编辑:程序博客网 时间:2024/05/17 04:56
/*----------------------------------------------栗子1:串口向主机发送程序----------------------------------------------*/#include "DSP2833x_Device.h"#include "DSP2833x_Examples.h"void Scia_init();void Scia_xmit(char a);void delay(char b);void main(void){    Uint16 m=0;    InitSysCtrl();    Scia_init();    EALLOW;    GpioCtrlRegs.GPAMUX2.bit.GPIO29=1;    EDIS;    for(;m<1000;m++)        Scia_xmit(m);        delay(100);}void Scia_init(){    SciaRegs.SCIFFTX.all=0xe040;        //使能FIFO,无FIFO中断    SciaRegs.SCIFFRX.all=0x2021;        //使能FIFO接收,且1级FIFO    SciaRegs.SCIFFCT.all=0;             //禁止波特率检验    SciaRegs.SCICCR.all=0x0007;         //空闲地址模式,1停止位,8位字长,无奇偶校验,禁止自测试    SciaRegs.SCICTL1.all=0x0003;        //SCI发送,接收使能    SciaRegs.SCICTL2.all=0x0003;        //SCI发送中断,接收中断使能    SciaRegs.SCIHBAUD=0x0001;           //波特率9600bps    SciaRegs.SCILBAUD=0x00e7;    SciaRegs.SCICTL1.all=0x0023;        //重新使能}void Scia_xmit(char a){    SciaRegs.SCITXBUF=a;    while(SciaRegs.SCICTL2.bit.TXRDY!=1)        {};//当TXRDY==0时,表示寄存器满,进入等待(即空操作),//直至SCITXBUF里面的数据发送完毕,此时发送寄存器为空,退出}void delay(char b){    for(;b>0;b++)        ;}
/*-----------------------------------------------栗子2:串口中断接收程序:DSP+串口调试助手PC通过串口给28335发送数据,然后28335回发给串口 -----------------------------------------------*/#include "DSP2833x_Device.h"#include "DSP2833x_Examples.h"void Scia_init();void Scia_xmit(char a);void delay(char b);interrupt void scia_rx_isr();void main(void){    Uint16 m=0;    InitSysCtrl();    InitPieCtrl();    IER|=0x0000;    IFR|=0x0000;    InitPieVectTable();    EALLOW;    GpioCtrlRegs.GPAMUX2.bit.GPIO28=1;    PieVectTable.SCIRXINTA=&scia_rx_isr;    EDIS;    IER=M_INT9;    PieCtrlRegs.PIECTRL.bit.ENPIE=1;    PieCtrlRegs.PIEIER9.bit.INTx1=1;    EINT;    ERTM;    for(;m<1000;m++)        Scia_xmit(m);        delay(100);}void Scia_init(){    SciaRegs.SCIFFTX.all=0xe040;        //使能FIFO,无FIFO中断    SciaRegs.SCIFFRX.all=0x2021;        //使能FIFO接收,且1级FIFO    SciaRegs.SCIFFCT.all=0;             //禁止波特率检验    SciaRegs.SCICCR.all=0x0007;         //空闲地址模式,1停止位,8位字长,无奇偶校验,禁止自测试    SciaRegs.SCICTL1.all=0x0003;        //SCI发送,接收使能    SciaRegs.SCICTL2.all=0x0003;        //SCI发送中断,接收中断使能    SciaRegs.SCIHBAUD=0x0001;           //波特率9600bps    SciaRegs.SCILBAUD=0x00e7;    SciaRegs.SCICTL1.all=0x0023;        //重新使能}void Scia_xmit(char a){    SciaRegs.SCITXBUF=a;    while(SciaRegs.SCICTL2.bit.TXRDY!=1)        {};}interrupt void scia_rx_isr(){    Uint16 ReceivedChar;    ReceivedChar=SciaRegs.SCIRXBUF.all;    ReceivedChar&=0xff;    Scia_xmit(ReceivedChar);    SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;    SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;    PieCtrlRegs.PIEACK.all|=0x0100;}void delay(char b){    for(;b>0;b++)        ;}
0 0
原创粉丝点击