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发送,
程序如下
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 */
}

  

 
 
运行现象
0
 
至此UART驱动完成啦
 
 
posted @ 2022-08-31 15:40  Jeremy_CJL  阅读(229)  评论(0)    收藏  举报