串口总结
使用cubeMX初始化CAN协议
1、选择CPU
2、选择使用的芯片,此处使用STM32F103VET6芯片,如下图所示:
3、选择参数调试参数
3、选择时钟为外部时钟
3、选4、输入外部时钟的参数**
4、初始化USART参数
5、输出文件
6、输出打开软件
使用串收发功能:
一、发送与接收:
USART 发送与接收
发送
void USART_SendOneData(uint8_t *pData)
{
if (HAL_UART_Transmit(&huart1, pData, 1, 1) != HAL_OK)
{
Error_Handler();
}
void USART_SendDatas(uint8_t *pData, uint32_t length)
{
for(int i=0; i < length; i++)
{
if (HAL_UART_Transmit(&huart1, &pData[i], 1, 1) != HAL_OK)
{
Error_Handler();
}
}
}
接收
注意:使用时需要在main函数中使用HAL_UART_Receive_IT(&huart1, RX_pData, 1)打开中断
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
USART_SendDatas(RX_pData, 1);
if (HAL_UART_Receive_IT(&huart1, RX_pData, 1) != HAL_OK)
{
Error_Handler();
}
}
DMA接收
接收
注意:使用时需要在main函数中使用HAL_UART_Receive_DMA(&huart1, RX_pData, 1)打开中断
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
USART_SendDatas(RX_pData, 1);
if (HAL_UART_Receive_DMA(&huart1, RX_pData, 1) != HAL_OK)
{
Error_Handler();
}
}