STM32F769NI-Discovery开发笔记(二)UART
开发环境:
开发板:STM32F769NI-Discovery
KEIL版本:5.33
STM32CubeMX版本:6.3.0
本篇主要讲STM32F769NI的串口实现,一般我们会串口来打印一些调试的信息
STM32F769NI-Discovery开发板的usb接口带有stlink与串口,连接usb到电脑,打开设备管理器找到对应的com口

根据原理图找到uart对应的引脚为STM32F769NI的PA9 PA10


通过STM32CubeMX软件进行配置
时钟部分配置参考之前的笔记
串口的配置如下

DMA功能根据自己需求开启,我这边一般是使用dma功能,将串口接收设置成循环dma


配置完成后生成代码
使用DMA发送配置前需判断DMA是否发送完成,为方便演示,这边就暂时不使用DMA发送,
程序如下
uint8_t RxBuff;
uint8_t TxBuff;
//接收完成回调函数
void HAL_UART_RxCpltCallback(UART_HandleTypeDef *huart)
{
if(huart == &huart1)
{
//收到什么发什么
TxBuff = RxBuff;
HAL_UART_Transmit(&huart1,&TxBuff,sizeof(TxBuff),0xffff);
}
}
int main(void)
{
/* USER CODE BEGIN 1 */
/* USER CODE END 1 */
/* MCU Configuration--------------------------------------------------------*/
/* Reset of all peripherals, Initializes the Flash interface and the Systick. */
HAL_Init();
/* USER CODE BEGIN Init */
/* USER CODE END Init */
/* Configure the system clock */
SystemClock_Config();
/* USER CODE BEGIN SysInit */
/* USER CODE END SysInit */
/* Initialize all configured peripherals */
MX_GPIO_Init();
MX_DMA_Init();
MX_USART1_UART_Init();
/* USER CODE BEGIN 2 */
//配置串口dma接收缓存
HAL_UART_Receive_DMA(&huart1,&RxBuff,sizeof(RxBuff));
/* USER CODE END 2 */
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
/* USER CODE END WHILE */
/* USER CODE BEGIN 3 */
//系统运行指示灯
HAL_GPIO_TogglePin(LED1_GPIO_Port,LED1_Pin);
HAL_Delay(200);
}
/* USER CODE END 3 */
}
运行现象

至此UART驱动完成啦
浙公网安备 33010602011771号