STM32Cubemx:搭建STM32F103系列单片机的基础工程

STM32Cubemx:搭建STM32F103系列单片机的基础工程

文章目录

STM32Cube配置1.1 晶振引脚配置1.2 配置SYS Mode1.3 时钟树配置1.4 串口配置1.5 Cube工程配置

二、Keil配置2.1 打开Reset and Run2.2 实现printf重定向2.2.1 对printf有较高要求的看这里

三、演示

STM32Cube配置

1.1 晶振引脚配置

1.2 配置SYS Mode

1.3 时钟树配置

如果有外接晶振,那么需要根据晶振频率计算一下,这里外接8Mhz。

1.4 串口配置

1.5 Cube工程配置

二、Keil配置

2.1 打开Reset and Run

设置完后,点击OK保存,不能直接×掉

2.2 实现printf重定向

这里采用最简单的方式实现,只需要修改usart.c文件就行。 将以下下代码复制进usart.c文件中就可以,然后在需要用printf的地方 #include

注意将代码放在用户编辑区,不然Cube重新生成代码就把这些代码删除。

#include

/* 告知连接器不从C库链接使用半主机的函数 */

#pragma import(__use_no_semihosting)

/* 定义 _sys_exit() 以避免使用半主机模式 */

void _sys_exit(int x)

{

x = x;

}

/* 标准库需要的支持类型 */

struct __FILE

{

int handle;

};

FILE __stdout;

/* */

int fputc(int ch, FILE *stream)

{

/* 不同芯片的串口标志位不一定相同! */

while((USART1->SR & 0X40) == 0);

/* 串口发送完成,将该字符发送 */

USART1->DR = (uint8_t) ch;

return ch;

}

2.2.1 对printf有较高要求的看这里

我写了一篇关于printf重定向的博客,不同办法实现printf主要区别就是是否使用微库(MicroLIB)、是否利用中断、是否打开DMA、是否使用多串口。

文章链接:STM32 HAL库:使用C标准库或MicroLIB实现printf && 多串口使用printf输出 && 结合DMA实现printf && 常见问题总结

三、演示

在mian.c中包含stdio.h,在主函数中printf()

相关推荐

365bet下注网站 如何解决wegame游戏卡顿的问题

如何解决wegame游戏卡顿的问题

📅 06-29 👁️ 1549
bat365app手机版下载 深入评测:华为手机的性能与用户体验究竟如何?
bat365app手机版下载 琉璃神社是什么

琉璃神社是什么

📅 07-10 👁️ 6882