spi的配置方法与uart差不多,但使用过程中总感觉不如uart灵活。例如,通常单片机在spi中处于主机地位,其发送和接收都是主动的,因此这两个中断的意义就不是很明显。作为主机要想得到spi的数据,就必须发送无效字符来产生spi的时钟。
如何利用spi的发送中断和接收中断,来编写较高效率的驱动程序呢,使得其占用较少的cpu资源,减少系统功耗。各位有什么好的解决方案吗?
灰小子:
还是要利用好msp430的低功耗模式,在不进行spi通讯时进入低功耗
Lichen Wang:
如果能增加一條信號線, 讓外圍用來要求主機中繼, 主機接到此中斷後才用 I2C 接收外圍的要求. 這樣可以避免主機不斷使用 I2C, 勞而無功.
此外也可以用 Timer 定期起動 I2C, 來探測外圍. 這樣也可以降低使用 I2C 的頻率.
Lichen Wang:
回复 Lichen Wang:
我上一個貼子說的是 I2C. 其實 SPI 也是一樣的。
Ken Wang:
楼主,
解决办法有几个选择:
1. 配合使用DMA,减少CPU的work load
2. 尽量多使用低功耗模式
3.增加一根信号线,当从机有数据发送时,拉低,触发主机的I/O中断,然后发送时钟,收取数据。
谢谢