学习笔记:百问网 7天物联网智能家居实战训练营
上手思路
-
去芯片原厂官网,下载资料
《数据手册》(Product Specifications)
《参考手册》(Reference Manuals)
-
下载公板或者其它开发板配套资料
《原理图》
-
根据《原理图》分析硬件
先看最小系统的部分,后续使用其他部分再看其他部分电路
-
根据示例程序和《参考手册》编写程序
最小系统
同最少的电路组成单片机可以工作的系统
电源电路
复位电路
调试下载
时钟电路(但是stm32内置时钟源)
启动选择电路(有些芯片没有 要注意)
100ASK_STM32F103_MINI原理图的最小系统部分
存储结构
外设和寄存器
常见的外设
(全学会就差不多了)
要自己学会阅读手册,看懂寄存器的使用;
这方面有待补充
开发方式
单片机的开发方式
-
使用汇编操作寄存器
执行效率高,编写难度大、移植性差
用在一些旧的芯片或者很要求性能的场合
-
使用C语言操作寄存器
执行效率低,编写效率大、移植性差
可以用库函数操作寄存器,简单很多;如果没有库的话,必须得会这个
-
使用库开发
-
标准库
执行效率稍低,编写效率高、移植性稍低
(没有移植性,已经停止更新了,不支持新芯片)
-
HAL库
执行效率稍低,编写效率高、移植性好
-
创建工程
st生态给了一条龙的软件
-
自定义创建工程
定制化程度高,干净简练;前期配置难度高,需要一定经验
如何操作可以参考《100ASK_STM32F103_MINI用户手册》的第七章, 学习用keil创建工程模板;
学习之后 在这里补充链接
-
STM32CubeMX创建工程
上手难度低,可视化方便;但是需要按指定规则编写代码
STM32CubeMX创建工程
在此手动创建一遍
- 通过MCU创建project,选择STM32F103C8型号
- 查看原理图PA1连的led灯,设置为输出
- 保存后修改一下配置,能让keil读取
- 打开工程,找到主函数
main.c
,找到while循环,插入led闪烁的代码
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_RESET);
HAL_Delay(1000);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_1,GPIO_PIN_SET);
HAL_Delay(1000);
笔记参考:百问网 物联网智能家居 DAY2的学习