打印

F2812串口通信,上电时未写数据即发送一批数据?

[复制链接]
1042|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
mentoscui|  楼主 | 2012-12-28 16:13 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
如题,F2812刚上电初始化完SCI,查看SCITXBUF就有数值(具体为执行完SciaRegs.SCICTL1.bit.SWRESET=1;//软重启),而且是之前的数值,上位机串口调试软件收到一组好像是上次发送末尾的数据和0x00,请问是什么原因?谢谢
SCI初始化程序如下:

相关帖子

沙发
mentoscui|  楼主 | 2012-12-28 16:13 | 只看该作者
void InitSci(void)
{
         //条件为SCIA的发送和接收GPIO引脚设置为SCITXDA引脚和SCIRXDA引脚
         SciaRegs.SCICCR.bit.STOPBITS=0;//设定1位结束标志位
         SciaRegs.SCICCR.bit.PARITYENA=0;//禁用奇偶校验功能
         SciaRegs.SCICCR.bit.LOOPBKENA=0;//禁用回送测试功能
         SciaRegs.SCICCR.bit.ADDRIDLE_MODE=0;//设定SCIA工作于空闲线模式,用于DSP与PC通信,或DSP对单个DSP
         SciaRegs.SCICCR.bit.SCICHAR=7;//设定SCIA有效数据位数8位
         SciaRegs.SCICTL1.bit.TXENA=1;//SCIA发送引脚发送功能使能
         SciaRegs.SCICTL1.bit.RXENA=1;//SCIA接收引脚接收功能使能
         SciaRegs.SCIHBAUD=0;//波特率设置,查P320,设为19200,对应寄存器值ox00F3
         SciaRegs.SCILBAUD=0xF3;
         SciaRegs.SCIFFTX.bit.SCIFFENA=1;//开启SCIFIFO模式
         SciaRegs.SCIFFTX.bit.TXINTCLR=1;//使能发送中断标志位清零功能,清零发送中断标志位
         SciaRegs.SCIFFTX.bit.TXFFIENA=1;//使能SCIA之FIFO发送中断,CPU级中断在main内已使能
         SciaRegs.SCIFFTX.bit.TXFFILIL=0;//发送FIFO中剩余0个数据,即当前一组16B以内数据发送完后,申请发送中断
         SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;//使能接收溢出标志位清零功能,清零接收溢出标志位
         //SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;//使能接收中断标志位清零功能,清零接收中断标志位
         SciaRegs.SCIFFRX.bit.RXFFIENA=1;//使能SCIA之FIFO接收中断,CPU级中断在main内已使能
         SciaRegs.SCIFFRX.bit.RXFFIL=16;//接收FIFO中断级位设为16,接收到16个数据后,申请接收中断
         SciaRegs.SCIFFRX.bit.RXFIFORESET=0;//接收FIFO指针复位到0,并禁止接收
         SciaRegs.SCIFFRX.bit.RXFIFORESET=1;   //重启接收FIFO,开始从0号FIFO接收数据
    SciaRegs.SCICTL1.bit.SWRESET=1;//软重启,将SCIA各标志位如TXDY,RXDY设到默认值,直到中断到来
}

使用特权

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

本版积分规则

10

主题

176

帖子

0

粉丝