【问题】在结构体中定义的是一个uint8_t类型的数组,那么可以按字符串输出吗?
可以,
HAL_UART_Transmit(&huart1, UsartType.RX_pData, UsartType.RX_Size, 0xFFFF);
printf("\n%s\n",UsartType.RX_pData);
上面两句一样的效果
具体代码:
在usart.c中添加
/* USER CODE BEGIN 1 */
/**
* @brief Retargets the C library printf function to the USART.
*/
int fputc(int ch,FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xFFFF);
return ch;
}
/**
* @brief This function handles USART1 IDLE interrupt.
*/
void UsartReceive_IDLE(UART_HandleTypeDef *huart)
{
uint32_t temp;
if((__HAL_UART_GET_FLAG(huart,UART_FLAG_IDLE) != RESET))
{
__HAL_UART_CLEAR_IDLEFLAG(&huart1);
HAL_UART_DMAStop(&huart1);
temp = huart1.hdmarx->Instance->CNDTR;
UsartType.RX_Size = RX_LEN - temp;
UsartType.RX_flag=1;
HAL_UART_Receive_DMA(&huart1,UsartType.RX_pData,RX_LEN);
}
}
/* USER CODE END 1 */
|