|
本帖最后由 yinshaojie 于 2018-5-18 10:01 编辑 /* USART1 init function */ static void MX_USART1_UART_Init(void) { huart1.Instance = USART1; huart1.Init.BaudRate = 19200; huart1.Init.WordLength = UART_WORDLENGTH_8B; huart1.Init.StopBits = UART_STOPBITS_1; huart1.Init.Parity = UART_PARITY_NONE; huart1.Init.Mode = UART_MODE_TX_RX; huart1.Init.HwFlowCtl = UART_HWCONTROL_NONE; huart1.Init.OverSampling = UART_OVERSAMPLING_16; huart1.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE; huart1.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_RXOVERRUNDISABLE_INIT|UART_ADVFEATURE_DMADISABLEONERROR_INIT; huart1.AdvancedInit.OverrunDisable = UART_ADVFEATURE_OVERRUN_DISABLE; huart1.AdvancedInit.DMADisableonRxError = UART_ADVFEATURE_DMA_DISABLEONRXERROR; if (HAL_UART_Init(&huart1) != HAL_OK) { _Error_Handler(__FILE__, __LINE__); } } 使用CUBE配置的,无法实现数据发送,可以接收数据,查询if ((USART1->ISR & UART_FLAG_TC)== 0)数据一直不成立 |
微信公众号
手机版
是不是应该判断UART_FLAG_TC这位的逻辑判断的有问题,没有你的代码没法确定,正常逻辑应该等待是这位为1时(或者TXE为空时)发送数据。
评分
查看全部评分
HAL_UART_Receive(&huart1, (uint8_t *)RX_BUF,1);
评分
查看全部评分
"aTxBuffer" buffer */
if(HAL_UART_Transmit_IT(&UartHandle, (uint8_t*)aTxMessage, 1)!= HAL_OK)
{
while(1) {};
}
/* Any data received will be stored "aRxBuffer" buffer : the number max of
data received is 10 */
if(HAL_UART_Receive_IT(&UartHandle, (uint8_t *)aRxBuffer, 1) != HAL_OK)
{
while(1) {};
}
HAL_UART_Transmit直接就能发送了
评分
查看全部评分
评分
查看全部评分