STM32 CubeMX 安装与使用入门(三)printf重定向,UART串口配置及GPIO按键中断

简介

这部分内容介绍如何使用CubeMx配置UART串口查询式发送,和GPIO中断式按键控制。在这部分结束后,最后会介绍如何重定向printf到串口。

硬件准备

笔者使用正点原子战舰V3开发板,使用任何主控是STM32的硬件设备并且带有GPIO控制的LED和按键,就可以,硬件上没有什么限制。开发板上自带usb转串口,用开发板链接数据线到电脑。
在这里插入图片描述

软件准备

  • STM32CubeMx
  • Keil MDK,IAR或类似的编译环境

实际操作部分

需求分析

使用GPIO中断的方式扫描按键来控制LED的亮灭,并通过UART1向电脑发送信息。

上手操作

打开CubeMx,选择ACCESS TO SELECTOR

在这里插入图片描述
刚安装好第一次点击会进入一个加载页面,他是链接官网更新芯片库的,如果加载时间过长,也可以关闭加载页面,也能直接进入我们下一步要操作的页面

在这里插入图片描述
在右上方选择你的硬件装置搭载的芯片,然后在左下方选择你要用的芯片并双击进入下一个页面。
在这里插入图片描述
可以通过界面发现,CubeMx工程的配置步骤非常清晰,从左到右分别为引脚与外设配置,时钟树配置,工程相关配置。从上到下也是系统核心功能到外设的配置。最右方的区域用图形化的方式配置相关的引脚。

1.第一步需要配置时钟源,我在这里选用外部晶振作为外部时钟源。左侧选择后,右侧会自动选择外部时钟源要用的引脚
在这里插入图片描述在这里插入图片描述
2.根据原理图找到相应的外设所在的引脚,这里我使用UART1和LED1,KEY1,KEY2
在这里插入图片描述
在这里插入图片描述

3.在引脚页面中配置相关引脚
在这里插入图片描述
上图配置GPIO相关,注意我这里配置的是外部中断下降沿触发,不同的硬件是不一样的,要留意自己的硬件应该是什么触发方式
在这里插入图片描述
上图配置USART串口相关,波特率选择115200,8位数据1位停止。

3.因为使用了中断,需要配置NVIC的中断优先级

NVIC全称

Nested vectored interrupt controller

即嵌套向量中断控制器,用来决定中断的优先级。

NVIC在 ARM Conrtex-M 内核中,用一个 8 位的寄存器来配置,总共可以配置256级中断,但是 ST 公司在生产 STM32 的时候,发现一个小小的单片机根本用不了这么多,纯属浪费,所以将该寄存器的低 4 位全部置0,只使用高 4 位来配置,这样一来 STM32 就只有16级中断啦。

  • 配置优先级分组
    在这里插入图片描述
    这里优先级分组设置为2位抢占优先级2位子优先级
    两个外部中断引脚抢占优先级分别设置为1和2

4.引脚配置完了,接下来配置时钟树
在这里插入图片描述
时钟频率,f103zet6最高为72Mhz,通过配置,最后使APB外设的时钟频率达到最高就可以了

5.配置工程相关
在这里插入图片描述
有两个地方要注意,生成工程的路径不能有中文,生成的IDE版本要正确,我这里选择的是MDK5.
在这里插入图片描述

6.配置完这些步骤后就可以点击GENERATE CODE生成工程了
在这里插入图片描述
7.打开工程

  • 串口部分代码
/* USER 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值