跳转到主要内容
cathy 提交于

STM32 Nucleo-64开发板MCU的型号是STM32L053R8T6,下面来创建串口通信例程。

一、安装软件</strong>

这里安装官网的STM32CubeMX软件,软件地址:

<a href="https://www.st.com/content/st_com/en/search.html#q=stm32cubemx-t=tools-…;

<center><a href="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112122-1.p…; target="_blank"><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112122-1.p…; alt=“” ></a></center>

<strong>二、创建项目</strong>

2.1、软件安装完成后,创建开发板的工程项目,选择File-->New Project创建项目。

<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112123-2.p…; alt=“” width="600"></center>

2.2、这是官网的开发板,创建项目时选择对应的开发板型号,会自动设置外设端口和时钟配置。

<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112126-3.j…; alt=“” width="600"></center>

选择Yes

<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112127-4.p…; alt=“” width="600"></center>

生成项目已经设置好串口、LED和按键引脚。

<center><a href="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112128-5.p…; target="_blank"><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112128-5.p…; alt=“” width="600"></a></center>

2.3、修改时钟配置

开发板的外部晶振我修改为8MHz,这里要修改下时钟配置

<center><a href="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112129-6.p…; target="_blank"><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112129-6.p…; alt=“” ></a></center>

2.4、输入项目名称和保存路径,选择编译器,生成项目

<center><a href="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112131-7.p…; target="_blank"><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112131-7.p…; alt=“” ></a></center>

<strong>三、编译项目</strong>

项目生成后,打开项目编译程序。

3.1、修改main.c文件,增加有光printf需要的函数。

<pre>#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");
}</pre>

3.2、编译程序

<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112132-8.p…; alt=“” ></center>

3.3、下载程序

<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112133-9.p…; alt=“” ></center>

<strong>四、运行结果</strong>

串口输出打印信息,同时开发板上的指示灯闪烁。

<center><img src="http://mouser.eetrend.com/files/2020-11/wen_zhang_/100058690-112134-10…; alt=“” ></center>

<strong>五、程序源文件</strong>