基于STM32F103C8T6的智能小车硬件设计与GPIO编程入门
创作时间:
作者:
@小白创作中心
基于STM32F103C8T6的智能小车硬件设计与GPIO编程入门
引用
1
来源
1.
https://bbs.21ic.com/icview-3396550-1-1.html
本文将详细介绍基于STM32F103C8T6的智能小车硬件设计和GPIO编程。内容包括原理图、PCB设计、焊接组装以及基本的GPIO和中断处理程序。适合有一定嵌入式开发基础的读者阅读。
硬件部分
元件选型
这里给出元件列表和数量,后面每个元件使用前会给出参数等。
原理图与PCB
底板原理图需要考虑以下几个关键问题:
- 各个模块的供电电压
- 模块接口引脚顺序
- 如何确定使用单片机哪个引脚
STM32F103C8T6核心板原理图(可能使用不同核心板略有差异)
PCB顶层截图,注意不同类型线的粗细和布局总线方式:
焊接
焊接时需要特别注意元件的正确安装顺序:
PCB正面:
PCB背面:
结构与组装
组装好的车体照片:
注意电机和红外对管不要插错。
测试
使用万用表蜂鸣挡测量电源引脚和GND是否短路。
软件部分
新建工程
建议选择和作者一样的版本。新建工程时需要完成以下步骤:
- 选择芯片
- 选择时钟源
- 选择调试方式
- 勾选生成独立的文件
- 设置保存地址
- 选择是否添加未使用库文件
GPIO编程
以点亮PC13连接的小灯为例:
配置PC13:
生成代码后,使用MDK打开工程,在BEGIN和END之间添加代码:
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);
HAL_Delay(500);
烧录程序
有两种方法可以选择:
方法一:使用DAP LINK
接线图和设置步骤略。
方法二:使用stlink
接线图和设置步骤略。
中断处理
以按键检测为例:
先看原理图:
PB4--KEY1 单片机设置下拉输入、下降沿触发
PA12--KEY2 单片机设置上拉输入、下降沿触发
开始配置:
使能外部中断,然后生成代码。
重新实现中断回调函数,编写按键检测程序:
在gpio.c 中我们编写该函数:
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
{
if(GPIO_Pin == KEY1_Pin){//判断一下那个引脚触发中断
//这里编写触发中断后要执行的程序
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);//切换LED GPIO状态
}
if(GPIO_Pin == KEY2_Pin){//判断一下那个引脚触发中断
//这里编写触发中断后要执行的程序
HAL_GPIO_TogglePin(LED_GPIO_Port,LED_Pin);//切换LED GPIO状态
}
}
把main中控制闪烁注释掉。
烧录后的现象:
按下KEY1 或者KEY2可以切换LED灯开关状态。
热门推荐
李清照笔下的声声慢:寻觅遗失的诗意与情感
和领导一起打车时座位如何安排?这种安排的合理性体现在哪里?
货运出口集装箱装柜指南
外贸货物装柜流程全解析
中国国花之争:牡丹与梅花谁更胜一筹?
影像测量仪的光源类型(如环形光、同轴光、平行光)如何选择
轩逸应加注哪种标号的汽油以达到最佳性能?
纪录片《The Wizard of AI》:AI技术在艺术创作中的探索与实践
胃反酸水的成因及改善方法:保护胃健康的重要性分析
如何在命令行(cmd)中输入并运行MySQL命令?
系统思维与结构化思维的四大区别
2025年陕西省高校排名:西北大学第6,西石大第18,渭南师范第31
商家转账到零钱被驳回?这份解决方案请收好
电动车骑完后,能不能马上充电?什么时候充电保护电池?答案来了
丑橘的营养价值有哪些
UI与UX设计原则:提升用户体验的关键
芒果与茶真的相克吗?全面解析两者同食的影响与科学依据
落枕别慌!5 分钟 “自救” 妙招速来 Get,告别酸爽疼痛
猫故意把大便拉在外面怎么办?
车辆过户可以把车牌一起过户吗
有贷款的房子可以过户给子女吗?四种解决方案详解
种植黑麦草需要什么土壤
黑麦草种植详解(几月份适合种植黑麦草?如何种植黑麦草?如何管理黑麦草?)
10部女导演执导的高分佳作,不止票房冠军,更有赢得国际大奖!
哪几种中药泡茶可以预防脑梗
最新女医生薪酬报告来了!
无边框窗口模式会增加操作延迟吗
Visual Studio编辑器模式管理指南:全屏与虚拟空间模式
银河系到底有多大
合同双方自愿放弃违约金的法律效力及常见争议解析