STM32 Nucleo-64开发板MCU的型号是STM32L053R8T6,下面来创建串口通信例程。
一、安装软件
这里安装官网的STM32CubeMX软件,软件地址:
https://www.st.com/content/st_com/en/search.html#q=stm32cubemx-t=tools-page=1
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112122-1.png)
二、创建项目
2.1、软件安装完成后,创建开发板的工程项目,选择File-->New Project创建项目。
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112123-2.png)
2.2、这是官网的开发板,创建项目时选择对应的开发板型号,会自动设置外设端口和时钟配置。
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112126-3.jpg)
选择Yes
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112127-4.png)
生成项目已经设置好串口、LED和按键引脚。
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112128-5.png)
2.3、修改时钟配置
开发板的外部晶振我修改为8MHz,这里要修改下时钟配置
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112129-6.png)
2.4、输入项目名称和保存路径,选择编译器,生成项目
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112131-7.png)
三、编译项目
项目生成后,打开项目编译程序。
3.1、修改main.c文件,增加有光printf需要的函数。
#include "stdio.h" typedef uint8_t u8; #if 1 #pragma import(__use_no_semihosting) struct __FILE { int handle; }; FILE __stdout; void _sys_exit(int x) { x = x; } int fputc(int ch, FILE *f) { while((USART2->ISR&0X40)==0); USART2->TDR = (u8) ch; return ch; } #endif 增加打印函数和指示灯 while (1) { HAL_GPIO_TogglePin(GPIOA, GPIO_PIN_5); HAL_Delay(100); printf("hello stm32l053! \r\n"); }
3.2、编译程序
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112132-8.png)
3.3、下载程序
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112133-9.png)
四、运行结果
串口输出打印信息,同时开发板上的指示灯闪烁。
![“”](http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112134-10.png)
五、程序源文件