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发送,
程序如下
1 2 3 4 5 6 7 8 9 10 11 12 | 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); } } |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 | 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驱动完成啦
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具