有关DSP SCI的FIFO模式 发送标志位TXFFINT

有关DSP SCI的FIFO模式 发送标志位TXFFINT,第1张

(1)寄存器不是输出端口,它没有高阻态,不是0就是1.

(2)寄存器上电后都有亩塌明确销圆的默认值,每个寄存器的每个位都有上电默亏耐塌认值,具体要查DSP的data sheet中关于此寄存器的描述。

所谓的FIFO就是先进先出的意思。SCI工作在FIFO模式下一般是因为所传输的信息并不是以一个帧为单位,而是以多个帧组成的一个包为信息单位的。比如说我的一个数据包由5个帧组成,第一个为控制字节,后四个字节共同组成一个浮点数。这时你可以设置FIFO接收中断为5个字节时产生中断。

设置以后,每接收到5个字节后才会产生一次中断,而不是每接收一次产生一次中断。这样可以大幅减小CPU的开销。而先进先出的意思就是:在中断中,你读FIFO接收寄存器读到的数据是首先接收到的数据,再读一次的话读到的是接收到的第二个数据。而16深度的话就是最多能保存最近的16个接收数据,如果接收数据超过16个的话会产生相应的溢出,可以软件编程对溢出进行处理。

对于发送FIFO也是一样,你可以一次将多个数据放到发送FIFO中,然后DSP按先后顺序依次发送数据。

不过我个人一般不使用FIFO功能,基本都是工作在正常模式。对于多字节的数据传输往往采用can通讯的方式,can通讯一帧数据最多可以发送8个字节。FIFO队列接收有一个缺点就是,接收的数据包格式的帧胡则数不能改变,如果是5个字节就必须都是5个字节。如果一会是裤迹棚5个字节,一会是3个字节。那3个字节的数据包会和下一个数据包的前两个字节产生一次中断,由于不同数据包的信息不同这样软件不易处理。can通讯就不一样,不管数据有几个字节,接收完一个帧州首就可以产生一次中断,能解决这个问题。

仔细看看SCICCR寄存器和SCIACR寄存器的配置情况,

看看是不是把SCIA的开了,而没有开SCIC的

再就悔肆是SCICTL寄存器的配置

把这些控碧大轿制寄存器的配置都弄好了就OK了

再就是别忘了打开SCIC的时钟

慢慢调下就能通仿春讯了


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12371280.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存