工具与软件:
尊敬的 MSP430 gurus:
我在与外部 温度传感器通信时似乎遇到了问题。 以下代码似乎不会填充任何寄存器、并且我收到一条消息、例如"error cannot load from non-primative location"(错误无法从非优先位置加载)
这里是我尝试从外部传感器读取的位置。 这里显然有什么东西吗?
谢谢
WDTCTL = WDTPW | WDTHOLD;
UCB0CTL1 = UCSWRST;//将 eUSCI 置于复位状态
UCB0CTL0 =(无符号字符)(UCCKPH | UCMSB | UCMST | UCSYNC);// 3引脚、8位 SPI 主器件
UCB0CTL1 = UCSSEL_2 | UCSWRST;//使用 SMCLK、使 eUSCI 保持复位状态
UCB0BR0 = 0x02;///2
UCB0BR1 = 0;//
P1SEL0 |= SCLK_PIN | MOSI_PIN | MISO_PIN;//设置 SPI 引脚
P1SEL1且=~(SCLK_PIN | MOSI_PIN | MISO_PIN);
UCB0CTL1 &=~μ s UCSWRST;
P1DIR |= CS_PIN;//将 CS 引脚设置为输出
unsigned int ctl0 = UCB0CTL0;
unsigned int ctl1 = UCB0CTL1;
P1OUT 且=~CS_PIN;
UCB0TXBUF = 0x00;//发送虚拟字节以启动 SPI 读取
while (! (UCB0IFG & UCRXIFG));//等待 RX 缓冲区准备就绪
TEMP = UCB0RXBUF << 8;//读取 MSB
UCB0TXBUF = 0x00;//发送虚拟字节以读取 LSB
while (! (UCB0IFG & UCRXIFG));//等待 RX 缓冲区准备就绪
TEMP |= UCB0RXBUF;//读取 LSB
P1OUT |= CS_PIN;