您好!
刚刚浏览了与我所遇到的问题相关的大部分其他主题、我似乎找不到任何其他具有相同问题的人。 我遇到的问题是、我设法向存储器 IC 发送和接收 SPI 数据、但问题是代码的读取部分。 我已连接的逻辑分析仪显示我正在将正确的值输入 MISO 端口、但当我单步执行 code composer 时、它会读取0值、除非我在读取 UCB1RXBUF 处断点。 如果我恰好在读取 UCB1RXBUF 行的断点、它会显示适当的值被载入到我的变量中、我可以继续程序、它会将值传递到我需要的位置、但是如果我在它显示0后中断。 似乎需要一个延迟或给它时间将值传输到变量。
unsigned int Mem_Read_Status (空)
{
while (!(UCB1IFG & UCTXIFG)); //检查 TX 是否就绪?
UCB1TXBUF = Mem_RDSR; //填充 UCB1TXBUF
while (!(UCB1IFG & UCTXIFG)); //检查 TX 就绪
UCB1TXBUF = 0x00; //为时钟生成虚拟数据
同时(!(UCB1IFG 和 UCRXIFG); // USCI_B1 RX 数据准备就绪可被读取
SPI_Data_Read = UCB1RXBUF; //读取 RX 缓冲 器<--在此处添加断点并显示值
返回 SPI_Data_Read; //返回值 <--在这里添加断点值显示0
}