控制台返回奇怪的符号。我使用USART1(STM32F7508-DK)向控制台发送一些数据。
使用以下简单数据时没有问题:程序似乎在第四次迭代(i=3)后退出 print_to_console() 并进入 int main() 中的 while(1) 循环。
uint8_t data[] = "HELLO! \r\n";
HAL_UART_Transmit(&huart1, data, sizeof(data), 1000);
但使用以下代码显示数值时:
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
HAL_StatusTypeDef ret = HAL_ERROR;
uint8_t ACCEL_ADDR;
ACCEL_ADDR = 0xD0;
ret = HAL_I2C_IsDeviceReady(&hi2c1, ACCEL_ADDR, 1, 100);
ret = HAL_I2C_Master_Transmit(&hi2c1, ACCEL_ADDR, &pData, 2, 50);
ret = HAL_I2C_Master_Receive(&hi2c1, ACCEL_ADDR | 0x01, convtempData, 128, 150);
print_to_console(convtempData);
}
void print_to_console(uint8_t* convtempData)
{
uint8_t space[] = " ";
for(int i = 0; i < sizeof(convtempData); i++)
{
HAL_UART_Transmit(&huart1, convtempData, sizeof(convtempData), 1000);
HAL_UART_Transmit(&huart1, space, sizeof(space), 1000);
}
}
|