STM32基础教程(CubeMX)—— 基本I/O口操作

基本I/O口操作

CubeMX的操作

时钟设置
  1. 在"Pinout & Configuration"界面下,左侧选择下拉菜单"Sytem Core",下拉菜单中选择"RCC",中间的界面里出现对应的窗口。“Mode”下高速时钟"High Speed Clock"选择为晶体模式"Crystal/Ceramic Resonator"。
  2. 在"Clock Configuration"界面下,高速时钟已经可以使用了。将最左边高速时钟的输入频率更改为你的晶振的频率,我们所使用的开发板是8MHz。右边紧接着的锁相环输入选择“HSE”,紧接着右边的锁相环选择“PLLCLK”,即把前面锁相环的输出作为时钟。最后将“HCLK(MHz)”填最大值72MHz。
调试接口
  1. 在"Pinout & Configuration"界面下,左侧选择下拉菜单"Sytem Core",下拉菜单中选择"SYS",中间的界面里出现对应的窗口。“Mode”下选择“Debug”为“Serinal Wire”,即串行线。
I/O口的设置
  1. 在"Pinout & Configuration"界面下,右侧的可视化界面里面搜索你要使用的I/O口,结果会在可视化界面中以黑色的方式闪烁。选中你所要使用的I/O口,鼠标左键单击可以选择初始化的功能,对其进行初始化。其中,GPIO_OUTPUT为输出型I/O口;GPIO_INPUT为输入型I/O口;GPIO_EXTI*为编号是*的外部中断,可以理解为带中断的输入模式。
  2. 初始化为输出模式后,可以在左侧的下拉菜单中选择"Sytem Core",下拉菜单中选择"GPIO",中间的界面里出现对应的窗口。选中初始化为输入模式的GPIO口,对应的那一行以浅蓝色显示,下方出现设置选项。"GPIO output level"就是默认的输出电平;“GPIO mode”就是GPIO的模式,分强力输出和开漏输出两种;“GPIO Pull-up/Pull-down”就是上下拉电阻的选择;“Maximum output speed”就是最大输出速度;“User Label”就是用户自定义的GPIO口别名。
  3. 初始化为输入模式后,可以在左侧的下拉菜单中选择"Sytem Core",下拉菜单中选择"GPIO",中间的界面里出现对应的窗口。选中初始化为输入模式的GPIO口,对应的那一行以浅蓝色显示,下方出现设置选项。“GPIO mode”就是GPIO的模式,这里只有输入模式一种选项;“GPIO Pull-up/Pull-down”就是上下拉电阻的选择;“User Label”就是用户自定义的GPIO口别名。
  4. 初始化为外部中断模式后, 可以在左侧的下拉菜单中选择"Sytem Core",下拉菜单中选择"GPIO",中间的界面里出现对应的窗口。选中初始化为EXTI模式的GPIO口,对应的那一行以浅蓝色显示,下方出现设置选项。“GPIO mode”就是GPIO的模式,它决定了该外部中断未会在接收到什么信号时被触发,默认为上升沿触发;“GPIO Pull-up/Pull-down”就是上下拉电阻的选择;“User Label”就是用户自定义的GPIO口别名。最后在左侧的下拉菜单中选择"Sytem Core",下拉菜单中选择"NVIC",中间的界面里出现对应的窗口。勾选你所使用的外部中断,可以顺便设置优先级,数字越大优先级越低。
工程的输出
  1. 在"Project Manager"界面下,填写工程名称和工程位置,注意,必须全英文。“Toolchain/IDE”选择"MDK-ARM",其实就是Keil5工程,并且选择你电脑安装的Keil5版本。
  2. 可选:点击左侧的“Code Generator”,在“Generated files”下勾选"Generate peripheral initialization as a pair of '.c/.h files per peripheral",即每个功能生成独立的.c和.h文件。
  3. 点击界面上方的“GENERATE CODE”输出工程。
CubeMX工程介绍
  • ”Application/MDK-ARM“文件夹下存储的是MDK-ARM的启动文件。
  • “CMSIS”文件是
  • ”AppLication/User“文件夹下存储的是用户的应用程序。
  • ”Drivers/STM32F1xx_HAL_Driver“文件夹下存储的是STM32F1系列的库函数。
  • ”Drivers/CMSIS“文件夹下存储的是系统的配置文件。
注意事项
  1. CubeMX生成工程时应该保证Keil5已经关闭。
  2. 在CubeMX生成的工程中编写程序时需要保证代码是写在规定区域内的,否则更新初始化时会被删除。

Keil5的操作

程序的下载
  1. 点击闪存(Flash)菜单,选择最后一个“配置闪存工具”,在弹出的窗口中选择“调试”界面,右上角的下拉菜单中选择你所使用的仿真器,最后点击确定即可。开发板中大的接口对应的仿真器是DAP,小的接口是J-Link。
  2. 在前面选择仿真器的下拉菜单后面点击设置,将Port选择为"SW"。其实这里可以根据你爹仿真器自行选择,不过现在所使用的仿真器都只支持SW。默认情况向下是选的JTAG,因此每次下载都会告诉你没有JTAG,将使用SW进行下载。
操作I/O口的一些函数
  1. HAL_GPIO_TogglePin(I/O口的端口,I/O口的序号),该函数作用对象应该是输出模式的I/O口,该函数会翻转选择的IO口的电平。
  2. HAL_GPIO_WritePin(I/O口的端口,I/O口的序号,要写入的电平状态),该函数作用对象应该是输出模式的I/O口,该函数会将GPIO口设置为你所设置的状态。
  3. HAL_GPIO_ReadPin(I/O口的端口,I/O口的序号),该函数作用对象应该是输入模式的I/O口,该函数会读取I/O口目前的电平状态,并作为返回值。
  4. HAL_Delay(毫秒数),该函数会让单片机等待对应的毫秒数,然后继续执行程序。

猜你喜欢

转载自blog.csdn.net/weixin_43718316/article/details/107985178