此串口再开发板上的作用是:与ST-LINK进行通讯,然后ST_LINK2经过USB与电脑连接,与上位机MotorControl Workbench进行参数显示和设置。这一部分我们不用理会,能用就可以,这里也不做详细的介绍了。
1.电路设计
串口3使用的是STM32F746芯片的PD8和PD9,可以查看原理图。
2.软件设计
串口的代码非常简单。串口的基本设置就是波特率的设置,只要开启了时钟,设置IO的模式,配置波特率、数据长度、奇偶校验、停止位就可以使用了。如果使用DMA或者中断,然后加上相应内容即可。再本开发板中,串口使能了中断。
/**
* [url=home.php?mod=space&uid=159083]@brief[/url] USART3 Initialization Function
* @param None
* @retval None
*/
static void MX_USART3_UART_Init(void)
{
/* USER CODE BEGIN USART3_Init 0 */
//主要功能是与ST_LINK2通讯,然后ST_LINK2经过USB与电脑连接,与上位机MotorControl Workbench进行参数显示
/* USER CODE END USART3_Init 0 */
/* USER CODE BEGIN USART3_Init 1 */
/* USER CODE END USART3_Init 1 */
huart3.Instance = USART3;//串口3
huart3.Init.BaudRate = 115200;//波特率为115200
huart3.Init.WordLength = UART_WORDLENGTH_8B;//数据长度为8
huart3.Init.StopBits = UART_STOPBITS_1;//停止位位1
huart3.Init.Parity = UART_PARITY_NONE;//无校验
huart3.Init.Mode = UART_MODE_TX_RX;//收发模式
huart3.Init.HwFlowCtl = UART_HWCONTROL_NONE;//禁用硬件流控制模式。
huart3.Init.OverSampling = UART_OVERSAMPLING_16;//启用过采样16,以实现更高的速度(高达 fPCLK/8)。
huart3.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;//指定是选择单个样本
huart3.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;
if (HAL_UART_Init(&huart3) != HAL_OK)//初始化串口
{
Error_Handler();
}
/* USER CODE BEGIN USART3_Init 2 */
/* USER CODE END USART3_Init 2 */
}
默认使用波特率为115200。