基于STM32CubeMX+STM32F103ZET6配置工程

以下是配置步骤

1. 选择MCU

在这里插入图片描述
在这里插入图片描述

2. 确认时钟源,选用外部晶振作为HSE的时钟源;接线方式选择SW;配置时钟为72M

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3. 配置IO口(LED)

在这里插入图片描述

4. 配置uart(PA9,PA10),方便打印输出,波特率115200,异步触发模式,

在这里插入图片描述

5. 打开usart1的串口中断

在这里插入图片描述

6. 配置抢占优先级和子优先级,数字越小,优先级越高

在这里插入图片描述

7. 起名字,选择编译链,定义堆栈大小

在这里插入图片描述

8. 生成代码前,每一个外设单独创建.c和.h文件;在重复生成时备份之前的代码;在重复生成时保留用户代码。总之一些安全措施

在这里插入图片描述

9. 配置使用的库是HAL库还是LL库

在这里插入图片描述

10. 生成代码

在这里插入图片描述

11. 使用KEIL5打开项目

在这里插入图片描述

12. 配置Target Option,这里根据自己的来

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

13. 编译下载验证,并在main.c中添加自己的用户程序

在这里插入图片描述

14. 重定向fputc和fgetc之后,printf无法使用,一定要把下面的MicroLIB选项勾上

在这里插入图片描述

15. 重定向函数如下

在这里插入图片描述

16. 接下来就是闪灯和串口输出了在这里插入图片描述

17. 重定向函数代码在下面

/* redirect fputc, then can use printf() */
int fputc(int ch, FILE *f)
{
	/* send one char to huart1 */
	HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 1000);	
	
	return (ch);
}

/* redirect fgetc, then can use scanf() / getchar() */
int fgetc(FILE *f)
{		
	int ch;
	HAL_UART_Receive(&huart1, (uint8_t *)&ch, 1, 1000);	
	return (ch);
}

18. 有些人会这样写重定向函数,注意17是基于HAL库,下面这个是基于固件库,HAL库已经处理好了发送标志位的检查。

在这里插入图片描述

  • 3
    点赞
  • 20
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值