1. 准备工作
硬件准备
首先需要准备一个开发板,这里我准备的是STM32L4的开发板(BearPi):

软件准备
- 需要安装好Keil - MDK及芯片对应的包,以便编译和下载生成的代码;
- 准备一个串口调试助手,这里我使用的是
Serial Port Utility ;
2.生成MDK工程 — 初始化GPIO为输入
选择芯片型号
打开STM32CubeMX,打开MCU选择器:

搜索并选中芯片STM32L431RCT6 :

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

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


接下来开始配置USART1 :
-
串口基本参数配置:

-
用户常量配置(不用配置)
-
NVIC配置(不用配置)
-
DMA配置(不用配置)
-
串口GPIO配置(默认即可)

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


生成工程设置

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

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

3. 在MDK中编写、编译、下载用户代码
测试发送
因为我们配置的时候没有使用中断,所以接下来我们直接使用HAL库的函数发送即可:
编写main函数:
int main(void)
{
char str[1] = {0};
HAL_Init();
SystemClock_Config();
MX_USART1_UART_Init();
HAL_UART_Transmit(&huart1, (uint8_t*)str, 12, 0xFFFF);
while (1)
{
/* 最大输入10个字节 */
if(HAL_OK == HAL_UART_Receive(&huart1,(uint8_t*)recv_buf,10,0xFFFF))
{
HAL_UART_Transmit(&huart1, (uint8_t*)recv_buf, 10, 0xFFFF);
}
}
}
然后编译整个工程:

最后进行下载设置:


最后点击下载即可:

实验现象如下:

来源:https://www./content-4-329651.html
|