主题中讨论的其他器件:MSP430FR2433
工具与软件:
大家好!
我要将 MSP 与 MPU-6050和 CCS811气体传感器进行连接、想通过 UART 查看相关值。
为此、我编码了两个函数、一个将整数值转换为字符串、另一个使用 UART 模块打印;在 main 函数中、我这样做:
while (1) { acc_comm(); //int_to_string(xAccel, num); //uart_puts(num); //int_to_string(yAccel, num); //uart_puts(num); //int_to_string(zAccel, num); //uart_puts(num); gases_comm(); //int_to_string(co2Lvl, num); //uart_puts(num); //int_to_string(tvocLvl, num); //uart_puts(num); // do something with the data __delay_cycles(500000); }
当我取消注释函数调用时、通信失败。
我想知道导致此问题发生的原因。 我想 I2C 线路不能空闲、但没有这方面的确认;你们的任何帮助都会非常感谢。
为了便于参考、我将两个函数代码保留在此处:
void int_to_string(int num, unsigned char *str) { unsigned char i = 0, j = 0; char aux[5]; do { aux[i++] = num % 10 + '0'; num /= 10; } while(num > 0); while(i--) { str[j++] = aux[i]; } str[j] = '\0'; } void uart_puts(unsigned char *str) { while(*str) { while(!(IFG2 & UCA0TXIFG)); UCA0TXBUF = *str++; } UCA0TXBUF = '\n'; }
此外、I2C 和 UART 的配置代码与 TI 开发人员专区中的示例相同。