单片机学习笔记1--资料下载、环境搭建(基于百问网STM32F103系列教程)
第1篇 资料下载、环境搭建
第一章 百问网视频体系及学习路线
1.1课程视频变化
2011-2020:百问网录制了10年的Linux视频。
2021:
1、首次进入单片机领域,发布单片机课程!
2、重新录制Linux课程,新芯片、新内核,新路线!站在更高的角度上实现单片机与Linux的统一:学习上统一起来!
1.2单片机学习路线
对于单片机的学习,百问网提供了两条路线。第一条是基于厂家提供的HAL库进行开发;第二条是基于寄存器进行开发。
1.2.1基于HAL库开发
HAL库是ST公司目前主力推的开发方式,用户通过调用厂家提供的封装好的函数,可以直接实现某些功能,无需对底层原理进行深入了解,而且各种资料、教程很多。因此可以大大节省程序开发周期,同时程序的移植性、稳定性也很好,适用于项目的快速开发。
但是由于HAL库帮你封装好了一切,用户只需要调用即可,所以开发易上手,入门门槛低,如果只做简单的HAL库开发,上限不高,核心竞争力不强,对后续的学习提升并没好处,所以百问网着重推出单片机的第二条学习路线——基于寄存器开发。
1.2.2基于寄存器开发
对单片机进行开发,实质上就是配置单片机的各种寄存器。通过寄存器进行开发,可以深入了解单片机底层的一些原理和细节,这些都是RTOS的核心,也是学习RTOS的必备知识。当你掌握这些知识后,就可以学习各种RTOS比如鸿蒙、rt-smart还有一些其他的RTOS,即使对于u-boot也需要这些基础知识。目前对于这些系统,百问网都有提供配套的开发板。
对于路线2相关资料、教程相对较少,教程推出后,深受好评,很多有多年工作开发经验的老工程师,也在学习这套课程。
1.3Linux学习路线
对于Linux的创新,百问网将其分为了两步,分别是快速入门系列和各类专题系列。
1.3.1快速入门
对于快速入门系列,百问网先学习Linux应用基础,在学习驱动开发,最后开始做项目。经过这三步,可以让大家对Linux的开发有个完整的概念,涉及底层、上层、和整体的项目。
1.3.2各类专题
当你入门以后,就可以深入学习各类专题了,比如驱动专题中,百问网会深入讲解各类驱动程序。
1.4如何选择学习路线
百问网的课程内容非常丰富,那么如何选择适合自己的学习路线呢?百问网提供了三条学习路线,其中大部分课程都是免费的,目前是由Linux驱动大全是收费的。可以去百问网官网(www.100ask.net)查看全部教程。
路线1:学习HAL库的开发。
路线2:学习单片机核心,掌握这些单片机的核心之后,就可以按照你的兴趣去学习各类RTOS。
路线3:如果不想从单片机入门的话,可以先学习Linux应用开发基础,在学习驱动,最后去做项目。当你入门以后就可以去学习各类专题。
1.5课程特点
1.5.1学习单片机
将单片机的学习与Linux的学习统一起来。
Linux驱动 = 驱动框架 + 硬件编程
丑陋的单片机程序 = 粗暴的硬件编程
优秀的单片机程序 = 软件框架 + 硬件编程,这里面会有一个容易扩展的框架。
百问网单片机程序 = 仿Linux框架 + 硬件编程
所以百问网单片机程序 ≈ Linux驱动,在学习单片机的时候也可以学习Linux的核心。
以LCD为例:
在Linux中,把程序分为应用层和驱动层,在驱动程序中,会抽象出两个结构体分别存放LCD的分辨率和显存等信息。
在单片机程序中,仿照Linux,也抽象出与上述类似的结构体,这样,在学习单片机的时候,也就掌握了Linux的核心。
所以假设你不会单片机,在学习百问网的单片机课程时,也会把Linux驱动的一些知识也学习了。目前单片机课程支持三款开发板:STM32F103,STM32MP157,IMX6ULL。
1.5.2学习linux
如果你已经会单片机了,可以直接学习百问网的Linux驱动视频,有两款开发板支持:STM32MP157,IMX6ULL。
1、灵活选择
Linux驱动 = 驱动框架 + 硬件编程,所以学习Linux可以选择学习驱动框架还是学习硬件编程。,大家可以根据自己的实际情况,灵活选择学习方向。
若对硬件编程已经很熟悉了,可以学习QEMU视频,它简化了硬件操作,可以专心学习驱动框架。若想获得更多的实战经验,可以学习IMX6ULL、STM32MP157视频,涉及硬件编程。
2、专属服务
提供随堂测试、模拟考试、私人课堂、课后作业四项服务。百问网会在群里面根据大家的需求时不时的做一些直播,帮助大家学习。
第二章 资料下载
1、对于单片机HAL库的学习,可以选择是看文档还是看视频。
百问网提供了100ASK_STM32F103用户手册供大家学习,里面有单片机的一些介绍还有26个具体例程。
视频资料目前还在录制中,没有全部推出。
2、对于寄存器的学习,百问网有基础部分的视频(目前已经录制完毕),还有关于FreeRTOS、RT-Thread的讲解(目前还没有录制)。
2.1百问网资料下载
对于第一条学习路线(基于HAL库)所有资料(除了视频)都在百度网盘中。
下载方式1:百度云网盘
链接
:https://pan.baidu.com/s/1Fe-SrqlFo1Xl4-1BTaWlpA 密码:root
下载方式2:微力同步
复制密钥在微力同步APP中使用:B3AIVGI73TMGVTEV27EYWKMHTLCKIRU5NXTUYR35EWYI6PVNSUU47BO
对于第二条学习路线(基于寄存器)所有资料(除了视频)都在Git中。关于Git的使用,可以再官网资料下载中心里面找到Git简明教程。
git clone https://e.coding.net/weidongshan/noos/doc_and_source_for_mcu_mpu.git
相关的全部资料大家都可以在百问网的官网(www.100ask.net)中找到。
1、进入官网,选择左上方资料下载。
2、选择对应的开发板
3、下载资料,不仅包含两条学习路线的资料,同时还有GUI的教程资料。
HAL库资料中,有开发手册,里面既有理论介绍也有程序讲解,可以根据手册进行学习。
目前百问网也推出了GUI教程,使用LVGL编写了一套GUI系统,目前相关文档已经出完,视频教程还没出全,可自行根据文档学习。
百问网LVGL系列教程: http://download.100ask.org/gui/lvgl/100ask_lvgl.html
2.2ST官方资料下载
ST官网的资料很庞大,涉及到许多方面而且全是英文,如何快速准确的找到想要的芯片资料,也是一个问题。
对于一个MUC而言,会有各种手册对其进行介绍,其中数据手册和参考手册尤为重要,必须下载。其他的比如Cortex-M3/M4编程手册,闪存编程手册、勘误手册、官方固件包示例源码、官方固件包用户手册、HAL库用户手册等, 可以根据具体需求下载。
1、进入ST官网,在顶部搜索框内输入要查找的芯片。
2、点击查找到的芯片进入详细界面。
3、点击documentation,进入文档界面,里面有该芯片的各种文档手册。
4、选择所需要的手册下载。
2.3视频资料
1、进入官网,找到对应开发板分类。开发板分类–>F103-PRO–>HAL库开发–>基于HAL库的开发。
2、选择对应视频教程
2.4开发版资源介绍
100ASK_STM32F103的资源如下图,其中红色标记部分是初学阶段需要使用,一定要理解。
这里将红色重要元件进行介绍。
1、DC电源接口:接入12V的电源。
2、电源指示灯:开发板电源输入正常——灯亮,输入异常——灯灭。
3、电源拨动开关:向下拨动——关闭电源,向上波动——打开电源。
5、启动方式选择开关:所谓启动,一般来说就是指下好程序后,重启芯片时,SYSCLK的第4个上升沿,BOOT引脚的值将被锁存。用户可以通过设置BOOT1和BOOT0引脚的状态,来选择单片机复位后的启动模式。
(一)boot0 = 0,boot1 = 0/1时,从用户闪存(flash)启动,是STM32内置的Flash,一般我们使用JTAG或者SWD模式下载程序时,就是下载到这个里面,重启后也直接从这启动程序。
(二)boot0 = 1,boot1 = 0时,从系统存储器启动,这种模式启动的程序功能是由厂家设置的。
(三)boot0 = 1,boot1 = 1时,从内置SRAM启动,既然是SRAM,自然也就没有程序存储的能力了,这个模式一般用于程序调试。
13、三色LED灯:可以根据不同的PWM信号显示不同的颜色。
19、开发板主控芯片:STM32F103ZET6
32、JTAG接口:将芯片与下载器连接起来,用于下载和调试代码。
36、USB转串口接口:把电脑和开发板连接起来,用于调试打印。
38、复位按键:按下时,芯片产生复位。
第三章 环境搭建
3.1嵌入式软件开发步骤
嵌入式开发通常分为六个步骤:编辑、预处理、编译、汇编、链接、调试和下载。每个环节都需要相应的软件实现,如果将这些软件集成在一起,就叫集成开发环境(Integrated Development Environment,IDE)。
编辑:在文本编辑器中,使用某种编程语言编写代码,保存到源文件中,生成.c文件。
预处理:通过预处理,将.c源文件中的预处理指令进行预处理,得到预处理文件.i文件。
编译:编译器将预处理文件通过一系列语法、词法分析以及优化,得到汇编.s文件。
汇编:汇编器将汇编文件中的汇编代码编译成机器使用的可重定位目标文件.o文件。一个源文件对应一个.o文件,多个源文件对应多个.o文件。
链接:连接器将多个.o文件一一链接起来,得到一个可执行目标文件.elf文件。.elf文件可以通过转换得到一个.bin文件。
调试和下载:开发人员将可执行目标文件下载到芯片中,根据现象判断程序是否满足需求。
将编辑器、预处理器、汇编器、链接器、调试器集成在一起,就是集成开发环境(lntegrated Development Environment.IDE)IDE,比如Keil或STM32CubeMX这样的软件。
3.2STM32CubeMX下载与安装
3.2.1 安装Java运行环境
由于STM32CubeMX软件是基于JAVA环境运行的,所以需要安装JRE才能使用。
打开资料包找到\3_开发软件\4_初始化代码生成器(STM32CubeMX)\jre-8u281-windows-x64,点击安装即可。
3.2.2STM32CubeMX安装
STM32CubeMX是ST公司推出的一款代码初始化生成工具,支持ST所有现役芯片。
官方下载:https://www.st.com/zh/development-tools/stm32cubemx.html
资料包安装:\3_开发软件\4_初始化代码生成器(STM32CubeMX)\en.stm32cubemx_v6-0-1
打开下载得到的文件夹,双击SetupSTM32CubeMX-6.0.1。
注意,若自己选择安装路径则安装路径中最好不要有中文,否则可能会发生意想不到的错误。
安装完成。
3.3Keil安装
Keil-MDK(Keil ARM Microcontroller Development Kit)前生是德国Keil公司,后被ARM收购,可以看
作是ARM官方的集成开发环境。
Keil官网下载:https://www.keil.com/download/product/
在百问网提供的资料包中也有Keil的安装包。路径是\3_开发软件\2_集成开发环境IDE(Keil)
上边的是Keil需要的芯片SDK包。下边的就是Keil的安装程序,双击运行MDK532。
选择安装路径,注意要是自定义路径,最好路径中不要有中文。
随便填写一些信息。
等待安装完成。
安装完成,点击finish。
打开软件,点击ok。
安装pack包,双击运行Keil.STM32F1xx_DFP.2.3.0,点击Next。
等待安装。
点击finish,安装完成。
单片机学习笔记1--资料下载、环境搭建(基于百问网STM32F103系列教程)相关推荐
- 单片机学习笔记9--常见的通信方式(基于百问网STM32F103系列教程)
第九章 常见的通信方式 通信即数据传输,不同模块之间进行数据的发送或接收.所以通信方式也可以认为是数据传输方式.常用的通信方式有以下几种. 一.串行和并行通信 串行和并行简单的区别就是数据传输的线是一 ...
- 华芯微特SWM181学习笔记--GPIO应用与环境搭建
华芯微特SWM181 系列 32 位 MCU(以下简称 SWM181)内嵌 ARM® CortexTM-M0 内核, SWM181 支持片上包含精度为 1%以内的 24MHz.48MHz 时钟,并提供 ...
- 迪文屏幕T5L平台学习笔记一:开发环境搭建注意事项
前面一直用T5UID3平台的屏幕开发,但是吐槽下<DWIN C Compiler 1>编译器bug太多,项目能不能做好,全靠运气:售后说T5L平台支持keil开发,我感觉挺好,于是从新学习 ...
- nginx学习笔记-01nginx入门,环境搭建,常见命令
nginx学习笔记-01nginx入门,环境搭建,常见命令 文章目录 nginx学习笔记-01nginx入门,环境搭建,常见命令 1.nginx的基本概念 2.nginx的安装,常用命令和配置文件 3 ...
- Python学习笔记:Day1-2 开发环境搭建
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- STM32上手-STWingSKIT_BC28学习笔记(一)环境搭建和LED灯点亮
嵌入式STM32上手学习笔记(一)LED灯点亮 STM32开发环境的搭建 1. 安装keil5 IDE 2. 下载STM32F1的支持包 3. 在Pack installer中找到F1支持包下载 4. ...
- 【海思AI芯片Hi3559A】学习笔记(1):开发环境搭建、安装SDK
芯片资料见Hi3559A的资料包 主要参考文档:ReleaseDoc\zh\01.software\board\Hi3559A╱C V100 SDK 安装及升级使用说明.pdf 注意所有解压操作均要在 ...
- [学习笔记] BearPi-HM Nano - 开发环境搭建HelloWorld
声明: 1. 该系列学习笔记整理自BearPi社区以及网络资源 2. 阅读本系列笔记需要部分单片机.电子技术和C语言基础 3. 才疏学浅,若有谬误,敬请指正 目录 一.简述 二.代码开 ...
- Lua 学习笔记(一)环境搭建
Lua是一个小巧的脚本语言.Lua由标准C编写而成,代码简洁,几乎在所有的操作系统和平台上都可以编译,运行. 主要讲一下mac和win下的环境搭建. 工具: 1.Sublime Text 2 2.Lu ...
最新文章
- (转)使.Net程序在未安装framework的电脑上运行(公布方法、源代码)
- mysql -d_mysqld
- cmd编译java命令_使用CMD命令编译执行java命令
- PAT L2-005 集合相似度
- JavaScript常用API总结
- 1720: 交换瓶子
- 一篇文章带你游历各种编码方式(三阶高密度码,曼彻斯特编码,交替双极性反转码,单双级(不)归零码)
- 阿里oss客户端直传
- 高斯过程回归预测 C++代码实现
- Kali 解决默认启动HDMI没有声音问题
- VUE Cascader省市二级联动 二级联动数据
- java接口防抖_RxJava功能防抖
- nginx rtmp推流配置与测试
- 基于4G路由器的救护车联网方案:生命,刻不容缓
- 业务流程管理(BPM)系统的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
- android T分屏流程
- ant-design中Input输入框在获取焦点时由于保留了上次输入内容而莫名出现了一个黑色背景的选择提示框,且选择提示框中的值后还会出现蓝色背景
- 查到2020年软考成绩后,这些事一定要知道!
- iOS小技能:iOS15崩溃排查技巧(symbolicatecrash符号化分析问题、导出和隐藏符号)
- Home Assistant系列 -- 接入手机摄像头做实时监控和人脸识别