以前一直用的6713外扩的752B,FIFO有64字节,只用到了接收中断,发送数据直接用FIFO了,没有用过中断。
现在6747只有16字节FIFO,估计以前的办法是无效了,正在研究6747发送中断,高手们多指点啊!
问题一:
发送中断的原理是怎样的?
我的理解是建立一个数据缓存区,向这个缓冲区里面丢要发送的数据,如果FIFO设置成8个,是每发送8个数据就进入中断?中断服务程序就将这个缓冲区里面的数据写到THR吗,这时候写入THR数据的个数有没有限制什么的?
还有初始的发送中断如何产生?比如要发10个字节,初始的发送数据个数是不是就只能写8,当产生了数据发送中断以后再把后面的2个字节发送出去吗?
问题二:(和FIFO无关哈)
开发板上用了I2C0,我看datasheet它的SCK是AUXPLL,那就是输入晶振啊,开发板上是24M,但是I2C程序的配置分频配的是3,也就是说把AUXPLL做了4分频是吧,应该是6M,但是代码后面的解释是12M,不懂了,求高手解释啊!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
嗯,这个,没主程序有发送数据,也就是没有触发发送数据这个中断源怎么能进串口发送中断呢?
不知道我的理解对不对,我以为至少不管哪个地方至少有一个数据发送才会进发送中断,然后再在发送中断里面继续发送数据,是这样的吧?
我的中断服务程序发送中断在进行数据发送,但是如果在主程序中或者其他程序中没有数据发送的指令,是进不了发送中断的啊,至少我的情况是这样滴,呵呵,还是我的理解错误了?有什么另外的办法呢?
一周热门 更多>