首页 > 其他分享 >STM32F769NI-Discovery开发笔记(二)UART

STM32F769NI-Discovery开发笔记(二)UART

时间:2022-08-31 15:44:06浏览次数:111  
标签:DMA CODE HAL UART USER STM32F769NI Discovery

开发环境: 开发板: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驱动完成啦    

标签:DMA,CODE,HAL,UART,USER,STM32F769NI,Discovery
From: https://www.cnblogs.com/jeremy2016/p/16643328.html

相关文章