(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的时钟
慢慢调下就能通仿春讯了
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)