STM32F769NI-Discovery开发笔记(二)UART

开发环境:
开发板:STM32F769NI-Discovery
KEIL版本:5.33
STM32CubeMX版本:6.3.0
 
本篇主要讲STM32F769NI的串口实现,一般我们会串口来打印一些调试的信息
STM32F769NI-Discovery开发板的usb接口带有stlink与串口,连接usb到电脑,打开设备管理器找到对应的com口
0
根据原理图找到uart对应的引脚为STM32F769NI的PA9 PA10
0
 
0
通过STM32CubeMX软件进行配置
时钟部分配置参考之前的笔记
串口的配置如下
0
DMA功能根据自己需求开启,我这边一般是使用dma功能,将串口接收设置成循环dma
0
0
配置完成后生成代码
使用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 */
}

  

 
 
运行现象
0
 
至此UART驱动完成啦
 
 
posted @   Jeremy_CJL  阅读(119)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具
点击右上角即可分享
微信分享提示