打印

DSP28335的串口问题总结

[复制链接]
3530|9
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
寒塘渡鹤|  楼主 | 2015-10-19 11:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近刚接触F28335的SCI模块,在调试的过程中遇到一些问题,望各位前辈能指点指点1.      部分寄存器位的配置不清楚
1.1    初始化FIFO,  在使用标志清除位 时,用不用先置1后清零,如下所示
         SciaRegs.SCIFFRX.bit.RXFFOVRCLR                = 1;                //清除接收FIFO溢出标志位
         SciaRegs.SCIFFRX.bit.RXFFOVRCLR                = 0;                //清除接收FIFO溢出标志位
         SciaRegs.SCIFFTX.bit.TXFFINTCLR                = 1;                //发送FIFO清除位  0:无效    1:清除FIFO中断标志位
         SciaRegs.SCIFFTX.bit.TXFFINTCLR           = 0;                //发送FIFO清除位  0:无效    1:清除FIFO中断标志位

1.2    初始化FIFO,在使用复位位是,用不用先清0后置1,这样做有何意义,如下所示
         SciaRegs.SCIFFTX.bit.SCIRST                     = 0;        //SCI复位
         SciaRegs.SCIFFTX.bit.SCIRST                     = 1;         //SCI使能
         SciaRegs.SCIFFRX.bit.RXFIFORESET           = 0;        //复位接收FIFO操作
         SciaRegs.SCIFFRX.bit.RXFIFORESET           = 1;        //使能接收FIFO操作



2.      将串口配置成FIFO模式

2.1    使用中断处理,中断产生的条件是什么?是RXFFST(FIFO中断等级标志)和RXFFIL(FIFO中断等级设定位)相等时才发生中断吗?还是前者小于等于后者就可以发生中断?
2.2   我的接收中断深度设定的是4,即SciaRegs.SCIFFRX.bit.RXFFIL        = 4;                //接收 FIFO 存储深度设置位
         我想只有FIFO存储满来自RXBUF送来的4个字节的数据时,程序才会进中断啊,为什么将rdataA[i]=SciaRegs.SCIRXBUF.all,写在中断处理函数中,程序依然可以进中断,并且可以正常接收数据。
        interrupt void sciaRxFifoIsr(void)               
       {
               Uint16 i;
                for(i=0;i<4;i++)
              {
                       rdataA[i]=SciaRegs.SCIRXBUF.all;         // Read data,rdataA[i]是定义的一个接收数组
               }
                 SciaRegs.SCIFFRX.bit.RXFFOVRCLR=1;   // Clear Overflow flag
                SciaRegs.SCIFFRX.bit.RXFFINTCLR=1;   // Clear Interrupt flag
                PieCtrlRegs.PIEACK.all|=0x100;       // Issue PIE ack
           }
评分
参与人数 1威望 +10 收起 理由
xyz549040622 + 10

相关帖子

沙发
dirtwillfly| | 2015-10-19 13:52 | 只看该作者

给力

使用特权

评论回复
板凳
xyz549040622| | 2015-10-22 17:23 | 只看该作者
赞一个,经验要经常分享!

使用特权

评论回复
地板
蔚蓝的海| | 2015-10-28 16:27 | 只看该作者
赞一个,谢谢楼主的分享了!

使用特权

评论回复
5
Thefantasy| | 2015-10-29 16:41 | 只看该作者
xyz549040622 发表于 2015-10-22 17:23
赞一个,经验要经常分享!

人家那个2.1是提问,不是分享的。。。

使用特权

评论回复
6
mmbs| | 2015-10-31 18:02 | 只看该作者
2812上也出现相关错误了。

使用特权

评论回复
7
jimmhu| | 2015-10-31 18:22 | 只看该作者
好像没有这种寄存器的定义方式了吧。

使用特权

评论回复
8
jimmhu| | 2015-10-31 18:22 | 只看该作者
这个c2000以前的定义方式才对。

使用特权

评论回复
9
598330983| | 2015-10-31 19:59 | 只看该作者
只有FIFO存储满来自RXBUF送来的4个字节的数据时,程序才会进中断啊,不是吗

使用特权

评论回复
10
Roderman_z| | 2015-10-31 20:38 | 只看该作者
谢楼主,经验分享非常棒

使用特权

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

本版积分规则

9

主题

20

帖子

0

粉丝