★STM32深入实践教程
文章平均质量分 50
嵌入式入门到精通第一门课,不同于大多数STM32教程的基于模块编程,本教程主要是以HAL库为基础,深入讲解C语言实践。同时也分享keil使用技巧,以及一些供参考的协议源码。最后也会更新项目篇以供比赛或者简历参考。
优惠券已抵扣
余额抵扣
还需支付
¥99.90
¥299.90
购买须知?
本专栏为图文内容,最终完结不会低于15篇文章。
订阅专栏,享有专栏所有文章阅读权限。
本专栏为虚拟商品,基于网络商品和虚拟商品的性质和特征,专栏一经购买无正当理由不予退款,不支持升级,敬请谅解。
CodeAllen嵌入式
CSDN博客专家,曾中科院无人机软件研发,现TOP通信外企高级软件工程师,专注通信电子及嵌入式软件方向职业规划,全网技术矩阵粉丝10w+,欢迎交流一起成长!
展开
-
嵌入式单片机学习入门到大牛
封面是我大一花了一个月自学51单片机之后,自己从画电路板到软件设计的第一件作品(之前做过几个都是手工焊接的),是一个很简单的基于51单片机的《便携仪温湿度测量仪》,第一次打板电源还搞错了,这已经是第二次打板之后的结果,现在看起来这么简单,但是当时却是历尽千辛万苦才搞出来,也是我这整个职业生涯的起点。对于单片机学习,下面绝大多数是我自己的真实学习路径,还有一些是我根据多年的学习经验补充的必须的知识,所以如果是在校同学那可以从头开始学习,如果是爱好者那挑一部分重要的学习就好,也没必要太深究。原创 2022-11-13 00:36:30 · 18561 阅读 · 0 评论 -
STM32深入实践教程目录
目前总文章数为68篇,后序会不断更新并整理目录,感谢支持!目录更新时间:2021年8月5日STM32 HAL库学习系列STM32CubeMX学习使用STM32CubeIDEKeil MDK使用STM32实例源码剖析STM32硬件剖析STM32问题分析其他STM32 HAL库学习系列第1篇 ADC配置 及 DAC配置STM32 HAL库学习系列第2篇 GPIO配置STM32 HAL库学习系列第3篇 常使用的几种延时方式STM32 HAL库学习系列第4篇 定时器TIM----- 开始定时器与PWM输出配置STM原创 2021-05-22 18:37:17 · 14143 阅读 · 2 评论 -
基于stm32的四轴无人机和智能车编程实践目录
智能车那些事前言:智能车制作的那些事原创 2021-08-03 08:50:51 · 47589 阅读 · 0 评论 -
STM32最小系统的组成部分
最小系统是指将STM32微控制器与必要的外部元件组合在一起,以实现基本的运行功能。编程/调试接口:通常使用SWD(Serial Wire Debug)接口或JTAG(Joint Test Action Group)接口进行编程和调试。这些接口允许你使用专用的编程器/调试器与STM32微控制器进行通信。复位电路:包括复位电路芯片(reset circuitry)和复位按键(reset button)。引脚连接:将STM32微控制器的引脚与外部元件(例如传感器、显示器、按钮等)进行连接,以实现特定的应用功能。原创 2023-05-31 20:51:32 · 1478 阅读 · 0 评论 -
单片机数/模转换器的概念(A/D)
模数转换可以说是单片机最重要的功能了,应用场合也非常多。这篇文章主要是对其基本概念做个解释。文中涉及的模数电概念我都链接了百科知识,不明白的可以直接跳转观看。首先这里的模数指的是模拟信号和数字信号,也就是analog和digital,模/数转换就是将连续变化的模拟信号转换为离散的数字信号。(反之亦然)这里主要是说下模数转换,因为对于控制算法开发,比如智能车或者无人机,经常需要对外部电压进行测量。但是电压是不断变化的,并不是固定的数值。开发者如果想知道具体的电压大小,就需要通过代码进行运算,而运算的参数都得是原创 2022-05-31 23:24:38 · 10698 阅读 · 0 评论 -
单片机定时器和计数器的概念
前言有接触过单片机开发的同学可能对定时器和计数器的使用很熟悉,但是定时器和计数器到底是什么东西呢?文中涉及的模数电概念我都链接了百科知识,不明白的可以直接跳转观看。正文其实定时器和计数器底层原理是一个加法器,加法器对于输入的数字脉冲会进行计数,然后输出十六进制的值记录结果。加法器可以加计数,当然也可以用来减计数,但是加计数用的的比较普遍,在单片机中大多数采用溢出判断。比如一个16位的计数器,最大值是65535,如果要实现100的计数,需要赋值给计数器初始值为65435,经过100个脉冲之后,计数器就会溢出,原创 2022-05-31 23:22:55 · 9982 阅读 · 0 评论 -
器件数据手册阅读基本方法
这是一套比较常见的阅读数据手册的方法:1.找器件(可以问前辈或者去淘宝按照要求搜索,我一般是选熟店搜索)2.根据型号检索其数据手册(淘宝有些会给,没有的话可以去其官网)3.查看基本参数和功能是否满足要求4.使用合适的器件展开电路原理图设计5.从官网下载器件的封装文件,没有的话也可以自己绘制6.参考书籍手册中的推荐布局完成PCB的布局和设计总结为脑图可以保存使用:...原创 2022-05-27 22:27:11 · 9728 阅读 · 0 评论 -
四轴无人机那些事 MiniFly源码分析 2 系统及电源分析
版权声明:本文为博主原创文章,转载请备注转载地址!!!。 https://blog.csdn.net/super828/article/details/80037571 最近硬件四轴很火,了解了很久,还是选择了正点原子的MiniFly,主要还是原子的论坛资料多,后边...原创 2018-11-22 22:58:27 · 46777 阅读 · 2 评论 -
四轴无人机那些事 MiniFly源码分析 1 main函数
版权声明:本文为博主原创文章,转载请备注转载地址!!!。 https://blog.csdn.net/super828/article/details/80037809 先看看整个工程的任务关系手机APP是需要自己开发APP的,暂时没空搞,坐等官方制作。。然后主要就...原创 2018-11-22 22:42:13 · 45213 阅读 · 0 评论 -
四轴无人机那些事 番外篇 4 关于PWM模式的理解
前言:之前做无人机的时候和pwm是经常打交道,不过最近这一年多由于“转行”已经很久不接触了,但是还是会在论坛默默潜水,发现好的资料也还是会仔细阅读,今天就分享一篇关于pwm的文章。整理:李工(Allen)素材来源:http://www.openedv.com首先,本人虽然初学STM32但极力反对一种误人子弟的观点:“对于STM32这样级别的MCU,有库函数就不用去看寄存器怎么操作的了!...转载 2020-02-04 12:10:55 · 49687 阅读 · 0 评论 -
四轴无人机那些事 番外篇 3 磁罗盘
地磁的北极在地理的南极的附近地磁的南极在地理的北极的附近磁体的同名磁极相斥,异名磁极相吸所以指南针的北极总是指着地理的北极(地磁的南极)1、红色指针指向北面,白色指针指向南面。在表盘上“北”用字母N表示,南用字母“S”表示。 2、指南针又称指北针,主要组成部分是一根装在 轴上的磁针,磁针在天然地磁场的作用下可以自由...转载 2018-11-17 00:31:05 · 49522 阅读 · 0 评论 -
四轴无人机那些事 番外篇 2 加速度计
加速度计原理: 加速度传感器实际上是用MEMS技术检测惯性力造成的微小形变,把加速度传感器水平静止放在桌子上,它的Z轴输出的是1g的加速度。因为它Z轴方向被重力向下拉出了一个形变。可惜的是,加速度传感器不会区分重力加速度与外力加速度。所以,当系统在三维空...转载 2018-11-17 00:25:26 · 49062 阅读 · 0 评论 -
四轴无人机那些事 番外篇 1 GPS定位
球面距离 球面上两点之间的最短连线的长度,就是经过这两点的大圆在这两点间的一段劣弧的长度(大圆就是经过球心的平面截球面所得的圆)。这个弧长叫做两点的球面距离。求法如下: 设若角AOB(球心角)为θ,大球的半径为R,...转载 2018-11-17 00:32:20 · 46621 阅读 · 0 评论 -
智能车那些事 5 常用电子元件之电感
电容,电阻,电感是电子设计中最常用的三个基础物理量前两种原理的作用也都很浅显易懂,但是到电感就有点模糊,到底电感是什么?有什么用呢?下边主要是围绕这几个问题做下介绍电感原理电感是导线内通过交流电流时,在导线的内部周围产生交变磁通,导线的磁通量与生产此磁通的电流之比。当电感中通过直流电流时,其周围只呈现固定的磁力线,不随时间而变化;可是当在线圈中通过交流电流时,其周围将呈现出随时间而变化的磁力线。电感器的工作原理分成两个部分:给电感器通电后电感器的工作过程,此时电感器由电产生磁场;电感原创 2021-08-18 22:37:06 · 42739 阅读 · 0 评论 -
智能车那些事 4 常用电子元件之电容
原文链接:https://mp.weixin.qq.com/s/DgF171xOwx97k63406mhew原创 2021-06-21 00:09:07 · 43875 阅读 · 0 评论 -
智能车那些事 3 常用电子元件之电阻
原文链接:https://mp.weixin.qq.com/s/8waN8uiDQ_Gok8LH5eDxKg3 常用电子元件之电阻继承前两篇文章的元件如何购买和使用数据手册,从这篇文章开始就说下电子设计中的几种常用元器件,对于日后的比赛或者工作而言,这几种都是最基础的元件。PS:虽然基础但是里边的坑还是挺多的,一起来看下吧!首先出场的是电阻对于电子设计而言,我们需要了解元件的性能参数和特性,那就按照这个顺序开始进入公众号内回复“电阻”获取两份优质电子文档,同时文章也是对数据手册使用的实践1.单位原创 2020-12-15 23:55:12 · 43950 阅读 · 0 评论 -
智能车那些事 2 从软硬件区别角度分析如何使用数据手册?
之前有很多人给我留言,不知道怎么入门嵌入式和电子行业,感觉很多东西都不知道,很迷茫,希望我给指点下,说实话这种感觉很正常,不是你不努力,原因是没找到获取数据的方法而已。嵌入式行业的特征就是软硬结合,学习嵌入式不止需要C语言,C++,QT等编程语言的学习,模数电,电路,PCB电路制作,高频等硬件知识也是非常需要的所以从我自己而言,嵌入式的培养方案也应该是软硬件同时进行,让学生做到思维上明白嵌入式的精妙之处,但是实际情况是嵌入式方向本身就很模糊(这几年通过知乎上很多同学的留言知道已经很多学校开展了专门的嵌入原创 2020-12-08 20:54:08 · 43945 阅读 · 0 评论 -
智能车那些事 1 初学者如何选择元器件?
由于网络的发达,现在的电子设计的资料很多,很多同学从网上就可以找到比较完整的电子设计资料,看着电脑上的电路和图纸感觉一切都很简单,实际一动手发现处处是困难。。。对于初学者入门电子设计,最难的就是选择电子元器件,尤其是面对庞杂多样的电子元件不知道如何下手下边就从几个我自己入门的经验分别说一下首先是理解电子元器件的用途电子元器件分很多,最基础的莫过于电阻电容电感等,然后还有很多现成的模块,这部分现成模块网上卖的很多,使用起来也很方便,比如超声波模块 HC-SR04内部已经集成了单片机和完整的滤波原创 2020-12-08 19:34:27 · 44202 阅读 · 0 评论 -
前言:智能车制作的那些事
我们专业是电子信息工程,大一学习了VB和C语言,虽然通过了考试和一些简单的demo,不过对于编程到底能做什么一直很迷茫。然后大二机缘巧合的从同学处得知学院实验室在举办嵌入式物联网大赛,在同学的邀请下便也参加了,其实这时候还对嵌入式一无所知。然后就是一个月的准备时间,这段时间应该是我入门嵌入式以来依赖最难熬的一个月,不知道从哪里入门?应该学什么?应该找什么资料?总之就是完全懵逼。。。然后就去找实验室学长介绍经验,知道了大致的学习路线51 - 32 - arm这简单的几个字符帮我开启了一道新世界的大门原创 2020-12-08 00:12:18 · 44375 阅读 · 0 评论 -
【HAL库系列】2.STM32CubeIDE新建工程
1.如图,新建stm32工程有个下载窗口,稍等下2.然后就会进入下面的界面之前用过cubeMX的同学应该很熟悉,这个就是选择需要芯片的一个选择界面依次是选择芯片,具体型号,具体封装然后添加项目名,选择工程位置这一步是有几个注意的点,一个是需要的固件库,这个默认就可以还一个是怎么放置库文件,默认选项是只拷贝需要的库文件是常用的选择到出现芯片模型,工程就建好了,这还是熟悉的cubeMX界面下边就是通过图形界面配置需要的参数,这部分之前有过介绍,基本是...原创 2022-04-01 23:20:14 · 1200 阅读 · 0 评论 -
【HAL库系列】1.STM32CubeIDE下载与配置
这篇文章主要是说下STM32CubeIDE下载与配置,相对于keil MDK而言,STM32CubeIDE是免费且开源的,所以建议直接去官网下载就好(但是由于墙的缘故,可能有些同学无法下载,所以我也会更新百度网盘,需要的可以自取)1.下载官网下载地址:https://www.st.com/content/st_com/en/products/development-tools/software-development-tools/stm32-software-development-tool原创 2022-04-01 00:53:17 · 6252 阅读 · 0 评论 -
【HAL库系列】0.STM32CubeIDE介绍
最近DIY了个电子作品,主控选的stm32,之前我总结过STM32CubeMX使用教程,那会STM32CubeIDE还没出来,但是现在既然已经更新了,那就用最新的工具。这篇主要就是介绍下STM32CubeIDE,下面的内容就是官网参数,包括后边的下载和参考资料也都是优先建议从官网获取STM32CubeIDE介绍•当前(2020年12月)最新版本 STM32CubeIDE 1.5.0,下载•新增功能 1、FreeRTOS调试窗口 2、用户可以...原创 2022-03-31 23:57:24 · 1950 阅读 · 0 评论 -
Keil MDK使用第19篇---资源分享
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处两份很不错的资料,非常值得参考**关注公众号回复“Keil MDK”**获取下载链接,失效请联系原创 2021-03-09 23:50:47 · 19846 阅读 · 0 评论 -
Keil MDK使用第18篇---最好用的调试方法---单步执行----F10 F11
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处最常用的手段F10 过程单步 *****(普通单步执行)F11 发现问题后(有可能是循环在这出不去)跟踪到子函数内部 --------同时观察左侧寄存器值变化,就可以判断很基础的问题(快速单步执行)...原创 2021-03-09 23:42:15 · 23384 阅读 · 0 评论 -
Keil MDK使用第17篇---keil内置调试函数
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处原创 2021-03-09 23:35:17 · 20527 阅读 · 0 评论 -
Keil MDK使用第16篇---call stack +locals 调用堆栈值
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处自动更新值,结合F11很好用名称----地址值----返回值和参数类型原创 2021-03-09 23:34:18 · 26319 阅读 · 0 评论 -
Keil MDK使用第15篇---memory window的使用
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处存储器窗口中可以显示系统中各种内存中的值c:0 (ROM存储器CODE区)d:0 (内部RAM的DATA区)i:0 (内部RAM的IDATA区)x:0 (外部RAM的XDATA区)其中 0 表示所在区的开始地址,可换成你想直接查看的地址实际使用...原创 2021-03-09 21:19:23 · 30888 阅读 · 2 评论 -
Keil MDK使用第14篇---断点的使用
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处实例参考:http://blog.csdn.net/phenixyf/article/details/53008834当程序运行到断点时,程序中断执行,回到调试器。观察有关变量值。F9 设置断点Ctrl+B 查看目前断点条件断点:数据断点:消息断点:断点对话框1.输入表达式-------用于程序停止运行的条件(keil有一套自己的调试语法)2.用于执行到第几次之后停.原创 2021-03-09 21:17:44 · 21742 阅读 · 1 评论 -
Keil MDK使用第13篇---逻辑分析仪配置
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处1.设为软件仿真2.查看可用引脚3.打开逻辑分析仪,同时打开symbols(符号)窗口,把GPIOB_IDR拉进去4.设置 And Mask 0x000000025.全速运行问题: unknown signalDARMSTM.DLL -pSTM32F103C8...原创 2021-03-09 21:16:26 · 21694 阅读 · 0 评论 -
Keil MDK使用第12篇---串口调试过程
我的首发平台是公众号【CodeAllen】,学习交流QQ群:736386324,本文版权归作者所有,转载请注明出处1.static int temp; temp = NRF24L01_Check(); printf("%d", &temp);来看返回值。2.定义全局变量查看BaseType_t t;t = xQueueSend(UART1_TX_QueueHandle,&temp1,0);3队列没有输出,将互斥信号量换成二值信号量之后有输出,但是只是0,这个应给是数据没有送到.原创 2021-03-09 21:13:44 · 21162 阅读 · 0 评论 -
stm32入门开发板选野火还是正点原子好,哪个的视频讲到好一点?
学习交流可以添加微信读者交流①群 (添加微信:coderAllen,备注加群)程序员技术交流①群:736386324这个比较有发言权,因为全部都研究过,要是对于学习,谁的都可以,因为都是很有系统的,但是总归还是要对比下,就从之前的一些想法考虑,这里可能还加入其他一些觉得好的板子先放下两家的论坛:野火电子论坛-开源电子技术交流网OpenEdv-开源电子网-正点原子论坛板子质量...原创 2020-01-05 14:38:36 · 24657 阅读 · 4 评论 -
MODBUS协议剖析 【MODBUS协议在STM32上实现 - 下】
这是我在知乎跟了很久的帖子,主要是拿专业数据看看国人目前的收入水平,也顺便平复下大家无来由的担忧感觉现在社会让每个人都很焦虑,追根到底还是钱的问题,怎么赚更多钱是每一个年轻人面临的最严肃的问题,下边这个数据可能会给你一些启发,发达的互联网让大家以为除了你大家都是百万富翁,实际呢,看看下边的数据吧!今日分享:年入十万可以打败多少中国人?分析:1.这个数据可以有几个角度可以分析,首先年入十万...原创 2020-04-13 19:27:34 · 21012 阅读 · 28 评论 -
MODBUS协议剖析 【MODBUS协议在STM32上实现 - 上】
原文首发地址:https://blog.csdn.net/super828/article/details/83662945#comments参考资料:获取资料加QQ群 7363863241.Modbus通信协议.pdf2.Modbus调试精灵1.024.rar3.主机源码.rar4.育灵科技视频第一节 通讯的硬件协议机制 主从模式的建立目的:实现在mo...原创 2018-11-11 19:02:02 · 33932 阅读 · 33 评论 -
MODBUS协议剖析 【Modbus基本原理介绍】
1.Modbus简介——来自维基百科Modbus是一种串行通信协议,是Modicon于1979年,为使用可编程逻辑控制器(PLC)而发表的。MODBUS是工业领域通信协议的业界标准,并且现在是工业电子设备之间相当常用的连接方式。Modbus比其他通信协议使用的更广泛的主要原因有:1.公开发表并且无版税要求2.相对容易的工业网络部署3.对供应商来说,修改移动原生的位元或字节没有很多限制2.M...原创 2018-11-02 23:21:24 · 14192 阅读 · 0 评论 -
STM32问题分析:..\Src\COM.c(62): warning: #550-D: variable "a" was set but never used
说明:本文原创作者『Allen5G』首发于微信公众号『Allen5G』标签:编程,软件,算法,思维QQ技术资料群:736386324个人微信 : coderAllen (人较多,请备注公众号读者)推荐阅读:如何更快的学习单片机?定义了变量 uint8_t a;之后使用变量代码 a= TX_buf[counter];编译器对于这种情况会做优化,编译器会分析出...原创 2019-06-19 19:32:44 · 15160 阅读 · 0 评论 -
STM32问题分析:error: #20: identifier "uint16_t" is undefined
说明:本文原创作者『Allen5G』首发于微信公众号『Allen5G』标签:编程,软件,算法,思维QQ技术资料群:736386324个人微信 : coderAllen (人较多,请备注公众号读者)推荐阅读:如何更快的学习单片机?#include "stm32f10x.h"语句要放在.h文件里,之前都是一直放在.c文件里的。他是先编译头文件,所以如果放在h文件里,c文件里就不用...原创 2019-06-19 19:27:12 · 30604 阅读 · 0 评论 -
STM32问题分析:error: #136: struct “<unnamed>“ has no field “State“
说明:本文原创作者『Allen5G』首发于微信公众号『Allen5G』标签:编程,软件,算法,思维QQ技术资料群:736386324个人微信 : coderAllen (人较多,请备注公众号读者)推荐阅读:如何更快的学习单片机?编译力效程序时一直出现这个错误,实际程序应该是对的,然后搜索对比了下,发现是库函数变化原因huart->State = HAL_UART_ST...原创 2019-06-19 19:22:43 · 29094 阅读 · 0 评论 -
STM32问题分析:在keil下编译,已经定义好的代码提示未定义的解决办法
说明:本文原创作者『Allen5G』首发于微信公众号『Allen5G』标签:编程,软件,算法,思维QQ技术资料群:736386324个人微信 : coderAllen (人较多,请备注公众号读者)推荐阅读:如何更快的学习单片机?编译出现如下错误:…\main.c(24): error: #20: identifier “TIM_TimeBaseInitTypeDef” i...原创 2019-06-19 19:25:32 · 23249 阅读 · 4 评论 -
STM32硬件剖析(仿真器的工作原理解析)
更多更好的知识可注我的知乎和公众号,分享知识,共同进步!关注我的公众号 :Allen5G我的知乎主页:Allen 李康 技术交流群:736386324仿真器出现的原因1、早期的单片机内部没有ROM,比如8031、8032,这种单片机只能外部扩展紫外擦除的EPROM存储器,就是芯片上带窗口的ROM。紫外擦除的ROM需要用紫外灯照射较长时间(10分钟或者更多)才能擦掉芯片中的...原创 2019-07-22 22:22:55 · 16588 阅读 · 0 评论 -
STM32硬件剖析(LD MD HD 的选择)
说明:本文原创作者『Allen5G』首发于微信公众号『Allen5G』标签:编程,软件,算法,思维推荐阅读:如何更快的学习单片机?STM32 LD MD HD 的选择.一般说STM32单片机的命名都是STM32F103XYZW这样的方式,其中X表示引脚数,Y表示ROM容量,Z表示封装方式,W表示工作温度范围,比如RBT6表示为64引脚、128KB和LQFP封装,工业温度范围。针对...原创 2019-06-17 07:48:49 · 16993 阅读 · 0 评论