本人双非智能制造准大三,未来想走嵌入式开发,由于学校课程内容上的局限性,以及基础上的欠缺。博主打算暑假开始自学嵌入式,将每日的笔记整理在csdn上,一方面是通过做笔记的形式来加深自己对所学知识的印象,将知识输出出来,是内化自学知识的必走通道;另一方面也想分享自己学的知识点,假若有人看的话,我也会不断精进自己的笔记质量。凡事都有个开头,尽管第一次做的时候,什么都不成熟,不吝啬每一次整理笔记的时间,它是最重要且无可取代的一步。
STM32模块
1. 脉冲宽度调制PWN
PWN概念:一种通过调节脉冲信号的宽度(占空比)来传递信息或控制电源输出的技术
众所周知,单片机处理模拟信号的能力有限,所以单片机内部主要处理的是数字信号;数字信号由0和1组成,往往0对应着低电平,1对应着高电平,那么也就意味着,我们点亮小灯只有亮灭两种状态。如果说,我们想自由控制小灯的亮度大小,仅仅靠数字信号,应该怎么拟合出模拟信号的效果?
这个时候,我们的所说的PWN就出来了!首先让我我介绍一下基本的概念
上面的这个是大概的一个数字信号,横轴表示时间,纵轴表示信号强度大小,我们能看到高电平为1,低电平为0,我们大部分看到的图像,高电平的时间与低电平的时间(宽度)是相同的,但是也有很多不一样的情况。
比如下图的,低电平占的时间更长一点,高电平占的时间更短一点
又或者下图的,高电平占的时间长一点,低电平占的时间短一点
有没有一种方法能够表示我们的这种高电平和低电平的这种相对状态呢?此时我们引入一个概念,占空比
占空比 = 高电平时长 / 周期时长
只要我们高电平的宽度占比越大,占空比也就越大;反之越小。也就是说 如果高低电平都是一比一的话,那么占空比就是1。
为什么要提出这方面的概念呢?
这么说,我们的数字信号为高电平的时候,灯亮了;为低电平的时候,灯灭了。不断这样进行着,灯会一会亮一会灭的状态。
但是如果我亮灭的速度足够快,快到我们也看不出它的亮灭了,这个时候只要高电平维持的时间更长一点,低电平维持的时间短一点,然后变化到高低电平时长一样以后,就可以看到灯从亮变成暗的一个过程。也就是说,我们可以操控高电平在周期的时长比例(占空比)来控制灯的亮度。
我们也可以通过这种方法来使数字信号拟合成模拟信号
2. I2C协议(只看了一点,大概了解了需要用到的)
I2C协议是我在用传感器模块的时候,看到SCL和SDA这两个接口,查了以后知道的。
I2C是广泛使用的串行通信协议,可以连接微控制器和各种外部设备。
通信方面,两线制通信
SCL是串行时钟线,主要用于同步数据传输的时钟信号
SDA是双向串行线,主要用于传输数据
数据传输过程分以下几点
开始条件,地址传送,数据传送,停止条件
推荐这个博主的文章: 一文搞懂I2C通信总线_i2c通信的详细讲解-CSDN博客文章浏览阅读10w+次,点赞391次,收藏3k次。本来不打算写这篇文章,因为网上关于I2C总线通信的资料很多很全。但是最近刚换工作,主要做驱动开发,第一个驱动就是I2C通信,想了想还是结合网上的资料再整理下思路,方便今后的查阅和温习。_i2c通信的详细讲解https://blog.csdn.net/m0_38106923/article/details/123673285 这一块的知识很多,我还没消化完,主要是把我需要的给看了,能用上的程度,倘若后面我看完 ,会整理一份通俗大概的文章
3. DTH11温湿传感器
这个是我今天学习的一个重心,我设计一个项目想能够将温度湿度的信息打印到OLED上,利用keil5软件,并且能够将这个信息上传到云端。
所以我就直接上手了这个传感器,在b站找到了对应的代码也跑通了
但是我在尝试看明白代码的时候犯了难,main函数代码能看明白,但是针对传感器的库函数和主函数我要不要去琢磨,我后面用传感器的时候要不要去自己写一份类似的库函数主函数,大家用传感器的话都是自己写库函数和主函数的吗(开始想太多了,可能是畏难了,因为我看传感器的模块,内部的原理也挺复杂的),所以我只是知道了怎么在main函数里面调用库函数,而不会自己去写库函数,造轮子()
这就是我第一天的学习,其实我知道还有很多要学的,我还要把数据结构给学了,以及python,java都要去跟上,这些都是我未来会用到的,一个暑假的时间也许能够都完成,干巴爹!!!