这篇文章主要记录一下拿到一块STM32开发板后,基础的程序下载、串口打印等功能测试。
一、工程创建
1、打开Cubemx,新建工程
2、选择芯片,鼠标双击创建工程
3、进入芯片配置界面
二、SWD调试引脚配置
1、配置STLINK调试引脚,开启SWD调试功能
三、时钟源配置
1、设置时钟源,根据自己需求选择时钟源,我这里是开发板,有外接晶振所以选高速外部时钟
2、配置时钟树
四、串口配置
1、串口参数配置
2、开启串口GPIO中断
五、工程输出配置
1、点击顶部ProcjetManager,设置工程名称,工程保存路径,选择开发环境,如果使用keil开发,则选择MDK-ARM
注意:工程路径中不允许含有中文.否则会输出错误
2、点击左侧Code Generator.选中仅复制需要的库,否则生成的工程会很大.
选择将外设配置为单独的.c和.h文件.
六、代码编写
1、main.c 包含 #include<stdio.h> 头文件
#include <stdio.h>
2、main.c 中加入printf重写函数,方便使用printf打印
int fputc(int ch, FILE *f)
{
HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff);
return ch;
}
int fgetc(FILE *f)
{
uint8_t ch = 0;
HAL_UART_Receive(&huart1, &ch, 1, 0xffff);
return ch;
}
3、main函数中添加打印调试代码
- 代码一:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
while (1)
{
printf("----------AAAAAAAA \r\n");
HAL_Delay(1000);
}
}
- 代码二:
int main(void)
{
HAL_Init();
SystemClock_Config();
MX_GPIO_Init();
MX_USART1_UART_Init();
uint8_t Data = 0;
while (1)
{
HAL_UART_Receive(&huart1, &Data, 1, 0xffff);
HAL_UART_Transmit(&huart1, (uint8_t *)&Data, 1, 0xffff);
}
}
4、Keil工程配置
- 勾选 Use MicroLIB,才能使用printf函数
- 勾选Reset and Run,程序下载后自动复位并运行
七、硬件连接
STM32 STLINK
VCC 《------------------------------------》3.3V
GND 《------------------------------------》GND
SWDIO《------------------------------------》SWDIO
SWCLK《-----------------------------------》SWCLK
STM32 CH340(USB转TTL)
GND《------------------------------------》GND
PA10《------------------------------------》TX
PA9 《-------------------------------------》RX
八、输出演示
- 效果一:
串口助手一秒打印一次如下信息,试验成功。
- 效果二:
串口助手输入一段字符串,单片机原样返回给串口助手,试验成功。