扼腕是什么意思| 高碎是什么茶| 含蓄是什么意思| 头陀是什么意思| 屋里有蝙蝠有什么预兆| 东方是什么意思| apple什么意思| 脑血栓有什么症状| 四季不安痣是什么意思| 暑假什么时候放| 性功能下降吃什么药| 牙齿什么颜色最健康| 化疗期间吃什么最好| 同型半胱氨酸是什么| 正常白带什么颜色| 分销是什么意思| 耳朵红热是什么原因| 色斑是什么原因引起的| 吃什么水果减肥最快| abo什么意思| SS是什么| 肠胃炎可以喝什么饮料| 阴茎硬度不够吃什么好| 火鸡面为什么这么贵| 4月13号是什么星座| 刚柔并济是什么意思| 刺猬为什么叫白仙| 博士的学位是什么| 性病有什么症状| 尿隐血挂什么科| 知鸟吃什么| 吃什么药能减肥| 瑜五行属什么| 经常肚子疼是什么原因| 神疲乏力是什么症状| 大什么一什么| 秋天吃什么| 疗愈是什么意思| 营养不良吃什么药| 什么叫业力| 山青读什么| 蝾螈是什么| 左边头疼是什么原因| 血红蛋白是查什么的| shiraz是什么名字红酒| soeasy是什么意思| 南瓜为什么叫南瓜| 基质是什么| 头疼 挂什么科| 反流性食管炎b级是什么意思| 为什么耳鸣| 地龙是什么生肖| 8月6号是什么星座| 吃羊肉不能吃什么| 什么时候用顿号| 后背疼是什么原因引起的女性| 女性性冷淡是什么原因| 唐氏综合症是什么意思| 中东为什么叫中东| 尖湿锐吃什么药最好| 似曾相识是什么意思| 五指毛桃什么人不能吃| 潴留是什么意思| 人体是由什么组成的| 嬲什么意思| 天安门以前叫什么| 什么品牌的奶粉最好| 生肖马和什么生肖相冲| vfu是什么牌子| 普外科是什么科| g6pd筛查是检查什么| 浮肿是什么原因引起的| 打虫药什么时候吃合适| 当我谈跑步时我谈些什么| 泡椒是什么辣椒| 排卵期是指什么时候| 肺结节是什么| 撸管是什么| 梦见木头是什么意思| 肛门痒用什么药| 不惑是什么意思| 为什么闰月| 看正月初一是什么生肖| 女性备孕吃什么养卵泡| 忌是什么意思| 三七粉有什么功效| trace是什么意思| 每天吃鸡蛋有什么好处和坏处| 出现幻觉幻听是什么心理疾病| 女人长期喝西洋参有什么好处| 室间隔增厚是什么意思| 冷的什么| 办理身份证需要什么| 有什么放不下| 岳飞为什么必须死| 小孩拉肚子吃什么药好| 为什么鱼和熊掌不可兼得| 美仑美奂什么意思| 卡地亚蓝气球什么档次| 老年人屁多是什么原因| 又双叒叕念什么啥意思| 什么水适合婴儿冲奶粉| 外来猫进家有什么预兆| 病毒感冒吃什么消炎药| 月经时间长是什么原因| 提篮子是什么意思| 淀粉可以用什么代替| 吃完麻辣烫吃什么补救| 半夜醒来口干舌燥是什么原因| 什么地飞| 见什么知什么| 感冒不能吃什么| 结节灶是什么意思啊| 牛蒡茶有什么功效| 无大碍是什么意思| 画龙点睛是什么生肖| 动脉血检查是检查什么| 独美是什么意思| 然五行属性是什么| 咳嗽吃什么水果最好| 井泉水命什么意思| 女生的胸部长什么样| 开火上下结构念什么| josiny是什么牌子| 双喜临门的临是什么意思| 菱角什么时候成熟| 美国为什么打伊拉克| 智齿长什么样子| 今年66岁属什么生肖的| 为什么晚上血压比白天高| 滋阴是什么意思| 性病是什么病| 毓婷是什么药| 怀孕皮肤变差什么原因| 什么叫同人文| 潆是什么意思| 梦见自己光脚走路是什么意思| socks是什么意思| 属鸡的是什么命| 息怒是什么意思| 地贫有什么症状| mc是什么| 看肠胃挂什么科室| 李元霸为什么怕罗士信| 人工授精是什么意思| 东道主是什么意思| 做什么来钱快| 艾滋病通过什么传染| 光阴荏苒是什么意思| 陈光标做什么生意| 嘴唇发乌是什么原因| 什么的尾巴长不了歇后语| 项羽为什么不杀项伯| 黄茶属于什么茶| 什么样的电动牙刷好| 凤凰长什么样子| 婴儿哭久了有什么危害| 钙片吃多了有什么副作用| 人为什么会有狐臭| 济公原名叫什么| 中蛊的人有什么症状| 北京晚上有什么好玩的景点| 波霸是什么| 肾小球滤过率是什么意思| 旗袍配什么鞋| 生物学是什么| 眩光是什么意思| 鸭肉煲汤放什么材料好| 肾虚吃什么食物| 五鬼是什么意思| 下腹隐隐作痛什么原因| 化验大便能查出什么病| 中空是什么意思| 铁达时手表什么档次| 炒米是什么米做的| 正常人尿液是什么颜色| 立秋什么意思| 胃反流是什么原因| 28岁属相是什么生肖| 嘴唇紫红色是什么原因| 牡丹什么意思| 胃肠感冒吃什么食物比较好| 什么鱼适合清蒸| 嬴稷和嬴政什么关系| 薄荷叶泡水喝有什么好处| 阿玛尼属于什么档次| 嘉靖为什么不杀严嵩| 插肩袖是什么意思| 床上有横梁有什么害处| 耳鬓厮磨是什么意思| mfr是什么意思| 剪刀是什么生肖| 肌肉纤维化是什么意思| venes保温杯是什么品牌| 什么行业最赚钱投资小| 心梗做什么检查| 法院起诉离婚需要什么材料| 肽有什么作用| 右肺结节是什么意思| 睡觉开风扇有什么危害| 舌下腺囊肿挂什么科| 肝硬化是什么引起的| 一月七号是什么星座| 什么钙片补钙效果好| 尿酸高能吃什么鱼| 什么年龄割双眼皮最好| 喝酒后吃什么解酒最快| 珊瑚虫属于什么动物| 自锁是什么意思| 龟苓膏是什么做的| 聚乙二醇是什么| 着床出血是什么意思| 猪寸骨是什么部位| hpv亚临床感染是什么意思| 补血补气吃什么好| 相知是什么意思| 什么石头最值钱| 去医院看心理挂什么科| 什么是头七| 手脚发热吃什么药| 水解是什么意思| 社会保险是什么意思| 低血糖吃什么| 地藏王菩萨是管什么的| 人黑穿什么颜色的衣服好看| 儿童中耳炎用什么药最好| 便秘喝什么茶| 呼风唤雨的动物是什么生肖| dikang是什么药| ldh是什么| 纤维硬结灶是什么意思| 吃什么能增强记忆力| 无犯罪记录证明需要什么材料| 雪貂吃什么| 32周做什么检查| 胃胀气是什么原因引起的| 心慌吃什么药| 罗汉肉是什么肉| 5月30是什么星座| 男人左眼下有痣代表什么| 出尔反尔是什么意思| 桔梗是什么东西| 招财进宝是什么意思| 深海鱼油有什么作用| 甲亢不能吃什么| 睡觉为什么要枕枕头| 什么什么似火| 马瘦毛长是什么意思| 乳腺增生的前兆是什么| 掉以轻心是什么意思| 茉字五行属什么| sayno是什么意思| 大马士革是什么意思| 治愈是什么意思| 豆豉炒什么菜好吃| 男性左下腹痛是什么原因| 宰相相当于现在什么官| 多囊有什么危害| 杰瑞是什么品种的老鼠| 什么叫脑梗| 劣质是什么意思| 蚊子害怕什么| pe是什么意思| 2月2号是什么星座| 百度

新闻中心

EEPW首页 > 嵌入式系统 > 设计应用 > STM32CubeMX系列之GPIO教程

pptv会员账号共享 2017.4.18 PPTVvip帐号分享

作者:嵌入式芯视野 时间:2025-08-04 来源:今日头条 收藏

教程目标


准备工作

  1. 硬件: STM32F407ZGT6开发板(如STM32F4野火霸天虎开发板)。 LED和按键, J-Link 调试器。 USB 数据线(用于供电和调试)。

  2. 软件: STM32CubeMX(最新版本,ST 官网下载)。 STM32CubeIDE(最新版本,ST 官网下载)。 STM32CubeF4 固件包(在 STM32CubeMX 中自动下载或从 ST 官网获取)。

  3. 硬件连接: LED:负极接电阻连接引脚 PF6,PF7,PF8,正极接3.3V。 按键:一端接 PA0,PC13,另一端接 3.3V。


LED设计

按键设计


步骤 1:创建新项目

  1. 打开 STM32CubeMX: 启动 STM32CubeMX,点击 File > New Project。 在 MCU Selector 中搜索并选择 STM32F407ZGT6。 点击 OK 创建项目。

  2. 选择外部高速晶振(HSE)


  1. 选择按键和LED引脚,PA0,PC13为按键输入管脚,选择GPIO_INPUT模式。PF6,PF7,PF8为LED输出控制管脚,选择GPIO_OUTPUT模式。配置 LED 引脚(输出): 在 Pinout View 中,找到 PF6,PF7,PF8。 左键点击 PF6,PF7,PF8,选择 GPIO_Output。 在 Configuration > GPIO 中,选择 PF6,PF7,PF8,设置: GPIO mode: Output Push Pull(推挽输出)。 GPIO Pull-up/Pull-down: pull-down。 Maximum output speed: Low(低速,适合 LED)。 User Label: 输入 LED_R、LED_G、LED_B(方便代码识别)。 点击 Apply。


  1. 点击Clock Configuration配置系统时钟为168M最高速度。在 Pinout & Configuration 选项卡,点击 System Core > RCC。设置 High Speed Clock (HSE) 为 Crystal/Ceramic Resonator(STM32F4野火霸天虎开发板使用25MHz 外部晶振)。切换到 Clock Configuration 选项卡: 设置 HCLK 为 168 MHz(STM32F407 的最大主频)。 配置 PLL:输入 25 MHz(HSE),设置 PLL_M = 25,PLL_N = 336,PLL_P = 2,得到 168 MHz。 确认后按 Enter 保存。


步骤 2:生成代码

  1. 项目设置: 点击 Project Manager 选项卡。 设置项目名称(KEY_LED)和保存路径。 选择 Toolchain/IDE 为 STM32CubeIDE。 勾选 Generated peripheral initialization as a pair of '.c/.h' files per IP。

  2. 生成代码: 点击 Generate Code。 STM32CubeMX 生成项目文件后,点击 Yes 打开 STM32CubeIDE。




步骤 3:编写代码

  1. 打开 STM32CubeIDE: 项目自动加载,打开 Core > Src > main.c。

  2. 实现 LED 闪烁: 在 main.c 的 /* USER CODE BEGIN 3 */ 和 /* USER CODE END 3 */ 之间的 while(1) 循环中添加:

	  HAL_GPIO_TogglePin(LED_R_GPIO_Port, LED_R_Pin); // 切换 LED 状态
 HAL_GPIO_TogglePin(LED_G_GPIO_Port, LED_G_Pin); // 切换 LED 状态
 HAL_GPIO_TogglePin(LED_B_GPIO_Port, LED_B_Pin); // 切换 LED 状态
 HAL_Delay(500); // 延时 500ms



3.实现按键控制 LED: 替换 while(1) 循环中的代码为:

 if (HAL_GPIO_ReadPin(SW1_GPIO_Port, SW1_Pin) == GPIO_PIN_SET) {	      HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_SET); // 按下点亮
 } else {      HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET); // 松开熄灭
 }


步骤 4:编译与烧录

  1. 编译项目: 在 STM32CubeIDE 中点击 Build(锤子图标)。

  2. 连接硬件: 使用 USB 线连接STM32F4野火霸天虎开发板(或 J-Link 连接自定义板)。 确保设备被识别。

  3. 烧录程序: 点击 Run > Run 或调试按钮(绿色播放图标)。 程序烧录后,LED 将根据按键状态点亮/熄灭,或以 500ms 间隔闪烁(取决于代码)。

  4. 测试: 按下 PA0 按键,LED 应点亮;松开后熄灭。 若实现闪烁功能,LED 每 500ms 切换状态。


步骤 6:高级配置(可选)

  1. 多 LED 配置: STM32F4野火霸天虎开发板板有3个 LED(PD12 绿色,PD13 橙色,PD14 红色,PD15 蓝色)。 在 STM32CubeMX 中将 PF6、PF7、PF8配置为 GPIO_Output,并命名为 LED_R、LED_G、LED_B。 修改代码实现多 LED 流水灯效果:

while (1) {    HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_SET);    HAL_Delay(200);    HAL_GPIO_WritePin(LED_R_GPIO_Port, LED_R_Pin, GPIO_PIN_RESET);    HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_SET);    HAL_Delay(200);    HAL_GPIO_WritePin(LED_G_GPIO_Port, LED_G_Pin, GPIO_PIN_RESET);    HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_SET);    HAL_Delay(200);    HAL_GPIO_WritePin(LED_B_GPIO_Port, LED_B_Pin, GPIO_PIN_RESET);
}
  1. 外部中断(按键触发): 在 STM32CubeMX 中,将 PA0 配置为 GPIO_EXTI0。 在 NVIC 选项卡启用 EXTI line 0 interrupt。 在 main.c 中实现中断回调:

/* USER CODE BEGIN 4 */void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {    if (GPIO_Pin == SW1_Pin) {
       HAL_GPIO_TogglePin(LED_R_GPIO_Port, LED_R_Pin); // 按键按下切换 LED 状态
   }
}/* USER CODE END 4 */
  1. 移除 while(1) 循环中的按键检测代码,中断将自动处理。

  2. GPIO 模式选择: 推挽输出:适合驱动 LED。 开漏输出:适合 I2C 或需要外部上拉的场景。 输入上拉/下拉:根据按键电路选择,避免浮空状态。


注意事项

  • 引脚冲突:确保所选引脚未被其他外设占用(查看 STM32F407ZGT6 数据手册或 CubeMX 的引脚视图)。

  • 电源:STM32F4野火霸天虎开发板通过 USB 供电,若使用外部 LED,确保电流不超过引脚限制(通常 20mA)。

  • 调试:使用 STM32CubeIDE 的调试模式,设置断点观察 GPIO 状态。



关键词: STM32

评论


相关推荐

技术专区

关闭
东北方五行属什么 生日礼物送什么 总是耳鸣是什么原因 麻黄碱是什么 做梦梦到踩到屎是什么意思
什么的遐想 感觉有痰咳不出来是什么原因 排骨用什么炖好吃 性生活过后出血是什么原因 三月是什么生肖
长期低血糖对人体有什么危害 人生观价值观世界观是什么意思 糜烂性胃炎吃什么药好 柠檬黄配什么颜色好看 什么鱼有毒
甲亢病是什么病 11月20号是什么星座 方得始终什么意思 瘦脱相是什么意思 nt是什么货币
从小一起长大的姐妹叫什么hcv9jop6ns2r.cn 称心如意是什么意思hcv8jop6ns6r.cn 冷沉淀是什么hcv8jop4ns3r.cn 睾丸突然疼痛什么原因hcv9jop2ns3r.cn 为什么会牙龈出血hcv8jop1ns3r.cn
早上起来不晨勃是什么原因hcv8jop4ns5r.cn 油嘴滑舌是什么意思hcv8jop2ns5r.cn 睡眠不好去医院挂什么科hcv8jop0ns2r.cn 什么是癔症病hlguo.com pnh是什么病的简称hcv9jop6ns5r.cn
不生孩子的叫什么族hanqikai.com 吃什么东西可以除湿气zhongyiyatai.com 3月3是什么星座hcv9jop3ns1r.cn 王王是什么字hcv8jop3ns0r.cn 梦到分手了是什么征兆hcv8jop8ns8r.cn
梦见跑步是什么意思520myf.com 劫是什么意思hcv7jop5ns6r.cn 秉承是什么意思cl108k.com 主动脉夹层什么意思inbungee.com 氟苯尼考兽药治什么病hcv9jop7ns9r.cn
百度