如何学习stm32,怎么学习stm32,不是仅仅看教程,照着写复制代码
如何学习stm32
好多人学习stm32 就是看视频,我的意思也不是看视频不对,看视频的确能够快速的让我们用上stm32的那些功能,即使我们不会懂其中的原理,但是当你学着学着你就感觉越来越恼火了,没有那些参考就不知道如何来处理,为什么呢?
不知道有没有小伙伴有没有这样的感觉,就是看人家写代码就知道怎么按某些步骤写下去,但是到了自己就不知道怎么办了,完全没有头绪…
eg:STM32f103
的 PC13
脚。
就像开启一个GPIO,来点灯
- 开启对应gpio的时钟
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
- gpio初始化,初始化前你学要定义好结构体
GPIO_InitTypeDef
GPIO_InitTypeDef GPIO_InitStructure;GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP;GPIO_InitStructure.GPIO_Pin =GPIO_Pin_13;GPIO_InitStructure.GPIO_Speed=GPIO_Speed_2MHz;
- 然后初始化GPIO.
GPIO_Init(GPIOC,&GPIO_InitStructure);GPIO_SetBits(GPIOC,GPIO_Pin_13); //这句可以不要
4.然后在主函数调用初始化函数,对其进行初始化。
5.最后是使用 GPIO_ResetBits(GPIOC,GPIO_Pin_13);
就可以点亮一颗灯了。
具体如图:(图中没有把它点亮,在主函数中加入led_on();就可以点亮灯了)
看到这里,小白觉得,哇!这么简单就点灯了!大佬觉得这么简单你也说,这么简单谁学一下也会啊!关键和标题有啥关系,标题党,死狗,想盘我!
重点来了
- 上面看着简单,但是我们不禁会想:他到底是怎么实现的?
- 为什么我们要开启时钟。
- 为什么我们要初始化GPIO。
- 结构体里的那些值怎么来的,不同值有什么不同?
- 那个
GPIO_ResetBits(GPIOC,GPIO_Pin_13);
又是哪来的???
很多教程都教你这么干,说配置时钟,配置寄存器…但是连你自己都没有试试没个的下效果,建议你去试一试。
1.首先必要的基础你应该了解
- GPIO是什么。
- 寄存器是怎样的。
- RCC_APB2PeriphClockCmd,时钟线的来源
(有人回想为什么是APB2呢?这是你就需要查stm32Fxxxx参考手册了),那前面的那些不用初始化吗?时钟有几个?怎么了处理??其实前面的系统函数已经完成了,具体在哪看下面。
/*进入主函数前已经完成微控制器时钟设置, 这是通过从启动调用的SystemInit()函数完成的文件(startup_stm32f10x_xx.s)之前分支到应用程序main。要重新配置SystemInit()函数的默认设置,请参阅system_stm32f10x.c文件*/
可以看到,SystemInit比mian先run。
在SystemInit()函数中,设置了相关的时钟,
。。。。。。。。。。。。。。。。。。。
讲这么多,我就是想表达一个意思:
点灯要点的有意义,弄懂基本概念与原理,为什么要这个样子。一步步慢慢来,不然你永远就只有复制代码,能实现但是不懂为什么是这样子的。
2.那我们如何一步步的去弄明白呢?
时不时看看基础 c语言.
C语言学习网站前面已经说了一个《参考手册》,必备资料。
库函数手册
还有一个最重要的那就是:stm32f10x_stdperiph_lib_um.chm(很多人都没有在意这是啥?这就是你们下载的标准库里面的说明文档,就是教你如何使用的,虽然是英语的,但是这个教你如何去使用每一个外设。)
百度,和论坛。
多看看别人的代码,多自己敲敲代码。写代码要规范
从创建工程开始,每一个驱动函数最好自己上下手。(创建工程也要规范弄清楚每个部分)eg:
文件夹中布局
keil中布局
- 观看视频,一定要动手撸代码。
- 干几个项目,这样才能逼着你成长。
以上代表个人的看法,可能我写的没那么好,但是请记住:
知其然,更要知其所以然。
最后
st官网下载资料
DJI Robomster 嵌入式交流
固件库详细解析
电子发烧友
stm32是挺恼火的吗,但是我们chinese people so niubi 。在新的佩奇年里,我们会更好。为伟大中国梦而奋斗!
如何学习stm32,怎么学习stm32,不是仅仅看教程,照着写复制代码相关推荐
- STM32学习笔记1.2 STM32的开发方式——写给电信学部学生科技协会的朋友们
你如果用过Arduino,应该对一个蓝绿色的C语言编程界面非常熟悉.你在里边写了一个叫做"Setup"的函数--在里边运行对各种外设的初始化函数,又写了一个叫"Loop& ...
- STM32 FSMC学习笔记+补充(LCD的FSMC配置)
STM32 FSMC学习笔记+补充(LCD的FSMC配置) STM32 FSMC学习笔记 STM32 FSMC的用法--LCD 转载于:https://www.cnblogs.com/LittleTi ...
- 【STM32】学习笔记RTC日历基础应用问题分析
▲ 点击上方 关注STM32 RTC,Real_Time Clock,即实时时钟,在许多电子系统中都能看到实时时钟的存在. 今天是第6篇分享,<STM32学习笔记>之RTC日历基础应用问题 ...
- STM32的学习记录--单个模块开发思路
1. 前言 很久没写STM32的学习博客了,不是因为没在搞,而且因为STM32要学习的部分太多,而且代码量太大了,有些代码还涉及到版权问题,就一直没写,最近刚好在搞一个智能设备有关WiFi模块的开发, ...
- STM32之学习总结(正点原子精英版V1,不定时更新)
前言:保姆级教程,帮你在学习路上畅通无阻,从学习资源整合到板子使用开发注意事项,到环境搭载,单片机基本知识介绍,有AD的设计功底,有51单片机的基础,有15单片机的项目开发经验,案例代码模块学习记录, ...
- Proteus STM32仿真学习板
一 全球IC爆冷,价格猛涨,ST系列单片机更是一马当先,贵到你怀疑人生.这个时候想学习STM32的基础去购买开发板是很不划算的,而且用完就搁置了,吃灰到永远,能半价甩卖就已经很好了. 为了让大家方便快 ...
- 单片机入门学习五 STM32单片机学习二 跑马灯程序衍生出的stm32编程基础
上篇文章 单片机入门学习四 STM32单片机学习一 跑马灯程序和创建工程 仅介绍了入门程序及其编译运行过程,下面开始对stm32的一些基础知识做一个记录. 1.stm32f103zet6(上篇问题3 ...
- 高手入门STM32总结+学习步骤
一.入门总结 1.1为什么要把时间花在"犹豫"上? 每当我们在入门之前(ARM是这样,DSP也一样),总会有很多疑问,会有很多顾虑.我们渴望知道学习STM32前景如何?需要啥基础? ...
- 最实惠又容易上手的STM32的学习板,你确定不了解一下吗
最实惠又容易上手的STM32的学习板,你确定不了解一下吗 ///插播一条:我自己在今年年初录制了一套还比较系统的入门单片机教程,想要的同学找我拿就行了免費的,私信我就可以哦~点我头像黑色字体加我地球呺 ...
最新文章
- php 开发cs,PHP开发CS结构的技巧
- 用简单的方法构建一个高可用服务端
- Asp.net采集用到的幾個方法
- ccBPM典型的树形表单和多表头表单的流程示例
- java 虚类_java虚方法
- python中为什么没有自增或者自减
- IIS下PHP的ISAPI和FastCGI比较
- 人工与计算机解决问题的异同,1.1计算机解决问题的过程ppt课件 .ppt
- mouseover和mouseenter的区别
- 第七章读书笔记《深入理解计算机系统》
- Android手机如何修改Mac地址,安卓手机怎么修改mac地址
- 平均值、中位数、众数等统计特性的matlab求解与示例
- html中显示框框中对勾,word对号怎么打 word怎么设置在方框里打对号
- h5 页面唤起微信和qq
- 16. FizzBuzz
- 腾讯视频投屏显示无法连接服务器,腾讯视频投屏不能快进
- ps考试引擎安装溢出屏幕
- 计算机串口连接原理,串口通信的原理及USB转串口通信
- javascript下载文件几种方式,接收后台返回流下载或直接下载文件
- 计算机联锁设计方案,设计方案实验3计算机联锁软件设计方案.docx
热门文章
- 如何为自己的网站生成SSL证书
- 如何利用TFTP协议发动DDoS放大攻击
- 余三码和余三循环码的简单理解
- Redis实现的布隆过滤器如何快速有效删除数据
- Redis常用操作之批量删除keys,和清空整个数据库
- supervisor> restart bili:create_bili_index bili:create_bili_index: ERROR (not running) bili:create_b
- Asp.Net CRM客户关系管理系统
- 推荐几个超有趣的公众号
- 工业4.0时代 个性化定制掀起制造业新篇章
- 喜讯!双驰企业正式成为欧盟地平线2020 项目合作伙伴