周工: 我仔细地看了您写的<ARM微控制器基础与实战>和<ARM嵌入式系统基础教程>, 对SPI那里有几个地方不太明白,想请教您一下:
1.书上的例子中每收发一个字节都是把SSEL激活一次的,比如 MSendData这个函数就是这样实现的. SSEL变低电平-->发送,接受1个字节-->SSEL变高电平 如果要发送一个字符串,是不是要把SSEL激活很多次,能不能在一次SSEL 激活中把多个字符全部发出去?
2.使得SPINT的中断标志置位的条件是什么?<ARM嵌入式系统基础教程>中P270页说是 SPIF + MODF,而P272页说的是 SPIF + WCOL . 不知道终究该是什么?
3.在SPI中是否存在类似I2C那种暂时阻止对方发送信息的机制?比如I2C可以 用I2CONSET中的SI位来遏止对方,使通讯延迟... 在SPI中有没有这样的机制呢?我没有看到. 对主SPI倒是没有什么.对从SPI的话,压力就大了,稍微延迟就可能收到 ROVRWCOL错误信息了 4.SPI状态寄存器SPSR中的SPIF到底是谁来清除的? <ARM微控制器基础与实战>P201页说是要通过"读或者写SPI数据寄存器来清零SPIF状态位",而P203页说"当第一次读取该寄存器时,该位清零"... 搞不明白了...
所以,在这里请教您一下...
|