zoukankan      html  css  js  c++  java
  • 单片机基础——使用USART发送和接收数据(查询模式)

    1. 准备工作

    硬件准备

    开发板
    首先需要准备一个小熊派IoT开发板,并通过USB线与电脑连接。

    2.生成MDK工程

    选择芯片型号

    打开STM32CubeMX,打开MCU选择器:

     搜索并选中芯片STM32L431RCT6:

    配置时钟源

    • 如果选择使用外部高速时钟(HSE),则需要在System Core中配置RCC;
    • 如果使用默认内部时钟(HSI),这一步可以略过;

    这里我都使用外部时钟:

    配置串口

    小熊派开发板板载ST-Link并且虚拟了一个串口,原理图如下:

    这里我将开关拨到AT-MCU模式,使PC的串口与USART1之间连接。

    接下来开始配置USART1

    配置时钟树

    STM32L4的最高主频到80M,所以配置PLL,最后使HCLK = 80Mhz即可:

     

    生成工程设置

    代码生成设置

    最后设置生成独立的初始化文件:

    生成代码

    点击GENERATE CODE即可生成MDK-V5工程:

    3. 在MDK中编写、编译、下载用户代码

    编写查询模式发送和接收代码

    编写 main 函数如下:

     1 int main(void)
     2 {
     3   /* USER CODE BEGIN 1 */
     4     char str[12] = "Hello World
    ";
     5     char recv_buf;
     6   /* USER CODE END 1 */
     7 
     8   HAL_Init();
     9 
    10   SystemClock_Config();
    11 
    12   MX_GPIO_Init();
    13   MX_USART1_UART_Init();
    14 
    15   /* USER CODE BEGIN 2 */
    16     HAL_UART_Transmit(&huart1, (uint8_t*)str, 12, 0xFFFF);
    17   /* USER CODE END 2 */
    18 
    19   while (1)
    20   {
    21     /* USER CODE END WHILE */
    22     /* USER CODE BEGIN 3 */
    23     //接收12个字节的数据,不超时
    24     if(HAL_OK == HAL_UART_Receive(&huart1, &recv_buf, 1, 0xFFFF))
    25     {
    26       //将接收到的数据发送
    27       HAL_UART_Transmit(&huart1, &recv_buf, 1, 0xFFFF);
    28     }
    29   }
    30   /* USER CODE END 3 */
    31 }

    编译代码

    编译整个工程:

    设置下载器

     

    实验现象

    下载运行后,实验现象如下:

     至此,我们已经学会了如何配置USART使用查询模式发送和接收数据,下一节将讲述如何配置USART使用中断模式接收数据。

  • 相关阅读:
    第二次作业循环语句
    c语言01次作业分支,顺序结构
    PAT 1027. Colors in Mars
    PAT 1026 Table Tennis
    PAT 1035 Password
    PAT 1038. Recover the Smallest Number
    PAT 1028 List Sorting (25)
    PAT 1041 Be Unique (20)
    PAT 1025 PAT Ranking
    1037. Magic Coupon
  • 原文地址:https://www.cnblogs.com/YuchuanHuaying/p/12545680.html
Copyright © 2011-2022 走看看