基于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灯开关状态。
热门推荐
仓库管理:从基础概念到现代技术应用
人工智能在包裹投递和分拣中的应用
恐龙分为几个时期 :带你了解不同的恐龙时期
《鬼太郎》中的红鬼:邪恶势力还是文化符号?
梦见红衣鬼:你的潜意识在说什么?
《红鬼的眼泪》:一部跨越时空的童话经典
反酸烧心胃难受的3大原因,2个中成药可缓解,彻底治疗还需它
海藻酸钠用于抗胃酸
活血止血有奇效——七厘散
深圳房价未来走向如何?深度探讨核心区域与外围市场
耳鸣患者必看!这些锻炼让你告别嗡嗡声
耳鸣引发焦虑抑郁?这些应对方法请收好
当心!这些习惯正在悄悄偷走你的听力
通过VR实现远程工作:虚拟办公室的优势与挑战
“左眼跳财 右眼相信科学”!关于眼皮跳的真相,这篇终于说清楚了
右眼皮跳是什么原因和预兆
卫生间装修设计要点及布局技巧详解
4㎡以下卫生间科学布局方案,你照着来就行,设计师都没这般专业
《戴森球计划》新手攻略:分拣器与传送带使用全解析
爆火宠物险,理赔「坑多多」
首个menin抑制剂获批上市,为白血病患者带来新希望
白血病患者为什么要做融合基因检查
丹娜—法伯新靶向药临床试验让中国急性髓细胞白血病患者受益
白血病KIT D816基因突变:定义、影响及治疗策略
16岁女生手掌发黄怎么办
病理性黄疸的特点是什么
春节前夕,如何确保烟花爆竹销售安全?
昆山市2025年烟花爆竹销售许可证办理指南
这才是量血压的正确方式,看看你做对了吗?
揭秘中国原子弹研发背后的“两弹一星”精神