请注意,本文内容源自机器翻译,可能存在语法或其它翻译错误,仅供参考。如需获取准确内容,请参阅链接中的英语原文或自行翻译。
器件型号:MSP430FR5994 尊敬的所有人:
我将在 MSP430FR5994上使用 UCA2来执行一些 SPI 操作。 连接不同的器件后、我将手动处理芯片选择。
初始化由这个代码片段完成
SPI_CTLW0 = UCSWRST; SPI_CTLW0 |= UCSSEL__SMCLK | UCCKPH_1 | UCCKPL__LOW | UC7BIT__8BIT | UCMSB | UCMST__MASTER | UCSYNC | UCMODE_0; SPI_BRW = 0; SPI_CTLW0 &= ~UCSWRST;
之后、我举例来说、通过发送一个字节
SPI_TXBUF = byte_to_write; unsigned int counter = SPI_TIME_OUT_COUNTER; while ( (!(SPI_IFG & UCTXIFG)) && (counter > 0) ) --counter;
在此实施中、我有两个问题、我希望您能帮我解决问题或指出正确的方向:
- 发送字节后、TX 引脚的电平(通常)为高电平、并且只有在读取时才会变为低电平、因此会将 TX 缓冲区设置为0x00。 是否有很好的修复方法、无需之后发送0x00? 我是否错误配置了某些内容?
- 在发送下一个字节之前、需要大约3-4us 的惊人长的时间(MCLCK = SPI-CLOCK = 4MHz)。 有更好/更快的方法吗?
谢谢你的帮助和最良好的祝愿
托比亚斯