基于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灯开关状态。
热门推荐
亲子鉴定报告解读:如何理解你的鉴定结果
云南大理沙溪古镇旅游攻略
科拉超深钻孔:为何停在12262米(技术和经济限制)
非凸优化算法:突破传统优化困难问题的局限
屏幕修复液:它真的有效吗?
诺如病毒腹泻后应如何科学补水?
劳务外包审核关注点:确保合规与质量
教师资格证考试的时间起点与未来的启航:以教师资格证的历程谈当下备考新征程开始之际
A股市场的“妖股”现象与散户投资策略
健康科普 | 易被忽视的眼睛问题——视疲劳
重庆北碚多方联动筑牢校园周边安全屏障
汽车底盘详解:核心构造与功能
汽车底盘由哪四个部分组成
如何处理汽油变质的问题?汽油变质的判断方法和处理措施有哪些?
骨灰能否用于亲子鉴定?——科学分析与现实选择
商王武丁,真战神也
夫妻肺片名称由来及两种美味制作方法
伤完了,阿森纳现在该怎么办?
小说和电影又有哪些不同
什么是股票回调?股票回调时投资者应如何应对?
萎缩性胃炎,一场发生在胃粘膜的「水土流失」
段延庆之子——段誉的传奇人生
京津唐地区地理与经济发展综述
什么是房产税? 房产税的定义、意义、实施及影响
管委会+公司:苏州、张江经验总结,成功模式如何复制
马来西亚准备重启新马高铁,决定选择采用标准轨,这是为何?
鸿博股份内控风险暴露,AI业务转型面临考验
生产成本属于什么会计要素吗
期货市场短期回调风险因素及应对策略
12种简单实用的家居清洁小技巧,让家焕然一新