GPIO是stm32的基础,单独时间点上,每个GPIO都可以作为输出,或输入,或中断,或特殊功能使用(特殊功能是指系统默认的功能使用引脚),每个时间点上,只能使用一种方式。
首先,我们打开CubeMX软件,完成工程的配置,以及MCU特殊功能的选择。
File=>New Project 创建一个新的工程
在左上角输入 stm32f103r6
在右侧就会出现这种型号的MCU,此例子中,我们选择,stm32f103r6tx,双击它就进入设置界面了
由于正常情况下,MCU都要外接一个外部晶振,而不用内部晶振,因此我们要先配置RCC,我们点击左侧菜单
System Core => RCC
在 RCC Mode and Config 栏内,将 High Speed Clock (HSC)外部晶振使能
然后配置系统时钟 点击 Clock Config 选择栏
配置如下
然后我们设置GPIO引脚 点击 Pinout & Config 选择栏
在窗口右侧,可以看到 MCU 引脚指示图,如果感觉图太小,可以拉伸,旋转,在这里我们选择 PC0和PC1作为我们的两个实验引脚,PC0输出,PC1输入,PC0 使用 GPIO_Output,PC1使用 GPIO_Input
然后我们精确设置GPIO的属性 选择 System Core => GPIO 在此,我们就看到了我们刚刚粗略设置的GPIO
我们在中间表格点击PC0
GPIO output level 选项为 GPIO 默认输出电平,在这里我们选择 Low低电平
GPIO mode 选项为 GPIO 输出模式,选择为 Output Push Pull 推挽输出
Maximum output speed 选项为 GPIO 输出时钟 高或低,选择为 Low 低
User Label 选项为 用户为GPIO 设置的名称 我们 设置为 LED,同理我们设置 PC1
由于GPIO功能设置不同,出现的界面也不完全相同,
GPIO mode 为 input mode 即输入 模式
GPIO Pull-up Pull-down 选项为 上拉下拉或悬空,我们选择 Pull-up 即上拉模式
标签为 BUTTON,至此GPIO配置完毕,之后我们要配置输出工程信息 点击 Project Manager 选择栏
下图是我的设置,设置完成后点击 右上角 GENERATE CODE 按钮,工程就创建完毕了