- 开始配置
- 代码拷贝
在主函数加入定义
#define BUFFERSIZE_1 255
uint8_t ReceiveBuff[BUFFERSIZE_1];
uint8_t Rx_len;
extern DMA_HandleTypeDef hdma_usart1_rx;
加入接受回调函数
void _UART1_RxCpltCallback()
{
uint32_t temp;
if(USART1 == huart1.Instance)
{
if(RESET != __HAL_UART_GET_FLAG(&huart1,UART_FLAG_IDLE))
{
__HAL_UART_CLEAR_IDLEFLAG(&huart1);
HAL_UART_DMAStop(&huart1);
temp = __HAL_DMA_GET_COUNTER(&hdma_usart1_rx);
Rx_len = BUFFERSIZE_1 - temp;
HAL_UART_Transmit_DMA(&huart2,ReceiveBuff,Rx_len);
HAL_UART_Transmit_DMA(&huart3,ReceiveBuff,Rx_len);
LED_Toggle;
Rx_len=0;
HAL_UART_Receive_DMA(&huart1,ReceiveBuff,BUFFERSIZE_1);
}
}
}
加入接收中断回调函数 添加回调函数定义
extern void _UART1_RxCpltCallback(void);
3、 初始化串口接收
__HAL_UART_ENABLE_IT(&huart1,UART_IT_IDLE);
HAL_UART_Receive_DMA(&huart1,ReceiveBuff,BUFFERSIZE_1);
好这样就可以收到发送出去的数据了 给我自己做的简单笔记 !
|