野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 118955|回复: 66

记录STM32学习过程,希望坚持下去!

[复制链接]
发表于 2020-7-19 17:19:20 | 显示全部楼层 |阅读模式
成功使用自己编写的库函数实现了点亮RBG灯,通过自己编程,清晰了每个函数具体是配置的是哪一个寄存器REG,并且学习了C语言中的宏,文件调用,枚举类型,结构体类型的语法,提高了继续学习下去的动力和决心,加油!
回复

使用道具 举报

 楼主| 发表于 2020-7-19 19:26:59 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-30 22:27 编辑

  “自己写库--构建库函数雏形”成功渡过,跟着火哥step by step,从直接操作内存进行寻址,到使用register map将寄存器(REG)与内存建立起一一对应的关系,从而操作寄存器,再到将[对寄存器的操作]封装成一个[函数](系统或网络)。
这种progressive的方式让我明白了,对封装得到的函数进行操作,本质上就是对内存进行操作,所谓对内存进行操作,就是通过总线来访问内存中的数据,此处访问(access),就是指读或写。
  在9-4节中,火哥使用‘宏macro’提高了程序的可移植性,让我再一次认识到了宏定义的重要性。个人认为最重要的点是三个主要函数,GPIO_Init,GPIO_SetBits,GPIO_ResetBits,正如上文我所说,函数实现的功能说到底都是对内存进行操作。而寄存器不过就是【被开辟的】一块内存空间,拿上述的三个函数来举例,GPIO_Init函数就是对寄存器GPIOx_CRL或者GPIOx_CRH进行读写,GPIO_SetBits函数就是对寄存器GPIOx_BSRR进行读写,GPIO_ResetBits函数就是对寄存器GPIOx_BRR进行读写。
另外我想表达的一点就是,这个函数,就是能够实现一定功能的网络或系统,在这里函数的功能就是将【包含碎片化信息的入口参数】整合成为【能够写进特定specified寄存器的32bit有效的二进制序列】。如果大家观察地仔细的话,会发现我们确实通过函数来操控寄存器,在函数体中也的确可以印证这一点,但是函数的brief简介中,对寄存器的概念避而不谈,感觉这一点也印证了该代码团队的初衷,就是为了节省大家的时间save time,省去大家查找寄存器的时间。


根据CPU与I/O端口交换信息的编址方式可知,STM32的编址方式为统一编址。
最后用钱学森爷爷的话来激励自己:“不要失去信心,只要坚持不懈,就终会有成果的。”


回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-19 20:34:02 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-30 22:49 编辑

10看完了,但是懵懵懂懂,等会跑完步回来翻一翻固件库的.c和.h文件

2020.7.30更
一般来说,首先需要关注的是头文件.h,头文件中包含了该接口电路中所有的函数原型(functions prototypes),以及这些函数原型(functions prototypes)所需要结构体类型的入口参数
如果想要了解这些函数具体详细的功能,就要到.c文件中去找具体的函数brief和入口参数的介绍
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-20 00:03:45 | 显示全部楼层
又把书和具体和固件库文件STM32_STPeriph_Lib看了一遍,觉得这无非就是一些相互对应的文件,关键在与libraries中的inc里面的头文件和src中的源文件,以及一些外设的缩写和命名规则
另外,遇见不懂的但是不太重要的东西应该拿得起放得下,不要让一些边边角角的东西而放慢了你学习的脚步。
野火论坛202007200001218161..png
野火论坛202007200001292022..png
野火论坛202007200001537588..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-20 00:09:05 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-20 00:31 编辑

2020.7.20要开始复习六级了,所以目标就定在完成第11,12讲的视频和程序以及阅读书上的内容。
加油,奥里给干了兄弟们!
再来一句鸡汤激励自己:种一棵树最好的时间是十年前,然后就是现在!
晚安,兄弟们!
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-20 18:29:15 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-20 18:41 编辑

渡过11讲!把11讲-新建工程-固件库版本的工程模板的configuration弄好了,就像火哥说的那样,由于用库新建工程的步骤较多,一般是使用库建立起来一个空的工程as a project template,以后直接复制一份工程模板在它之上进行开发即可。
在以前的基础之上,希望今晚能够把12-GPIO输出-使用固件库点亮RGB灯完成视频和代码并调试成功。
回复 支持 反对

使用道具 举报

发表于 2020-7-20 23:11:14 | 显示全部楼层
加油
回复

使用道具 举报

 楼主| 发表于 2020-7-21 13:11:37 | 显示全部楼层
效率很低地complete the Section 12,完成了RGB排列组合得到的7种颜色的流水灯,Section 12的定位应该是重温以前的知识,并且自己通过头文件的函数声明来寻找函数原型,并且会读函数原型中的入口参数,通过brief了解function的function,自己通过仔细阅读RCC_APB2PeriphClockCmd函数标注了一些知识点。
野火论坛202007211309205647..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-21 13:15:25 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-22 10:53 编辑

通过阅读火哥的书,其中有关于GPIOx接口的位操作的知识点,于是又和微机原理中的接口电路中的知识点进行了一些联系,思考了一下GPIO的本质,并且得到了GPIO(Genral Purpose Input/Output)就是Integrated I/O Interface Circuit(将输入输出接口集成在一起的接口电路)的结论,所以我暂时理解GPIO为GPIO接口电路,至于为什么叫做接口电路而不叫端口,因为往往习惯于将多个端口(寄存器)的集合叫做接口,不过这些问题无关大局,STM32F103指南者系列有A,B,C,D,E共五个GPIO接口电路,如果以后发现自己的理解有出入,会及时进行更改。并再次回顾了引脚普适的GPIO_Pin_x宏定义的含义,总结出来一些没有什么用的东西。
另外在STM32中有一点很重要,在STM32user manual中,8.1一节【GPIO功能描述】中图片表示的仅仅是GPIOx(5个GPIO接口电路中的一个)的16位引脚中的一位引脚,该接口电路中的寄存器组{BSRR,BRR,ODR,IDR,CRL,CRH,LCKR}控制着这16位引脚,并且由于有5个GPIO接口电路,所以就有5组寄存器组{BSRR,BRR,ODR,IDR,CRL,CRH,LCKR}。这5组寄存器组分别控制着80位引脚,通过此番思考,我也理解了为什么STM32拥有着不俗的性能,这就好比如果一只章鱼有80只触手,并且都可控,则其威力不可小觑。首先,我对内存地址统一理解成为由上至下从0x0000 0000到最后的地址,依次增大,并且每一个地址都对应的存储1Byte=8bit的数据。
另外,STM32工作在小端模式Little-Endian,就是低位字节存放在内存的低位地址,高位字节存放在内存的高位地址,对于每一个数据来说,数据内部本身可以分成高位和低位,由此可以理解为对每个数据都由低位到高位进行排列的一种模式。

作为对比,还有一个大端模式Big-Endian,就是低位字节放在内存的高位地址,高位字节放在内存的低位地址。

完整的I/O设备,I/O接口电路(端口或网络),CPU的关系

完整的I/O设备,I/O接口电路(端口或网络),CPU的关系

引脚宏定义

引脚宏定义

抽象端口网络

抽象端口网络

输入输出和CPU的关系

输入输出和CPU的关系
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-21 13:17:45 | 显示全部楼层

感谢WishWish的鼓励,我会努力的!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-21 13:33:45 | 显示全部楼层
希望今晚之前能完成13讲按键检测和14讲GPIO输出和输入的视频和代码,并且希望我自己不要再玩游戏了,希望这个暑假硕果累累!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-21 17:57:29 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-21 18:58 编辑

我的朋友们,时间就是金钱,而我们快破产了!
回复 支持 反对

使用道具 举报

发表于 2020-7-21 21:24:19 | 显示全部楼层
加油!!!
回复

使用道具 举报

 楼主| 发表于 2020-7-21 23:53:57 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-22 10:54 编辑

20:00左右就已经把视频和代码写完了,但是还是在火哥的讲解下完成的,代码的前半部分是自己写的,卡了一个下午,复习了C语言中的宏定义,带参宏,条件定义等概念,又复习了函数调用,函数原型的声明等基础知识,最后也是跌跌撞撞,懵懵懂懂的完成了。
明天打算把入门篇的最后一讲启动文件的视频和代码弄完后就开始总结入门篇的所有知识点,再巩固一下库函数版本的编程思路,再熟悉熟悉怎样在头文件中找各种参数,就暂时计划这些。
另外,今天成绩排名出来了,中等稍微偏上,还有两年,希望能再努努力,积极参加一些比赛,多加强自己的科创能力以及在实践中巩固以前的基础知识,在实践种学习。
自知天分不足,希望能尽自己最大的能力逐渐逼近自己满意的目标。
兄弟们,一起加油吧!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-21 23:54:19 | 显示全部楼层

谢谢兄弟的鼓励,我会继续加油的!
回复 支持 反对

使用道具 举报

发表于 2020-7-22 11:29:11 | 显示全部楼层
cool 精华帖
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-22 11:33:22 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-22 12:10 编辑

又看了看位带操作的章节,发现这章的基础在于对寄存器映射的正确理解,然后就只剩下,“哇,STM32也能进行位操作?”,“嗷,这不就是通过一个统一的公式来寻找在32MB的位带别名区的那个位嘛,然后改一改就可以了”。位带区(bit band)和位带别名区(bit band alias)两者的关系相当于Onedrive的云盘一样,在Ipad上修改会影响Onedrive中的文件,同样在Onedrive上修改也会影响Ipad上的文件。
就像火哥说的那样:“一切的恐惧都源于无知”。
野火论坛202007221129315616..png
野火论坛202007221129443677..png
野火论坛202007221129551633..png

火哥为了让大家好理解,说了一句很重要的话:一个地址对应一个字节,此图是寄存器在内存中的映射概念 ...

火哥为了让大家好理解,说了一句很重要的话:一个地址对应一个字节,此图是寄存器在内存中的映射概念  ...
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-22 11:35:12 | 显示全部楼层

火哥!我竟被翻牌了,我太开心了!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-22 22:07:49 | 显示全部楼层
今天算是马马虎虎地完成了入门篇的所有课程,卡在启动文件那一讲浪费的时间太多了,自以为本学期基于X86的汇编语言学得不错,但是遇到基于ARM的汇编语言,有些语法是不太相同的,现打算不再深究启动文件,向中级篇进发!
以后如果用到原先学的知识,再回头查漏补缺。绝不能耽误进度!
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-7-27 15:21:24 | 显示全部楼层
宏定义分类:
1.对象宏#define A ...          ,A是宏
2.空宏#define A                 ,A是宏
3.类函数宏#define F(a) .....,F(a)是宏
野火论坛202007271521172083..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 15:32:14 | 显示全部楼层
CLOCK TREE时钟树
STM32共有5个时钟源:
1.HSI;high speed internal clock高速内部时钟;在时钟树中可以发现内部时钟全部都是RC串并联正弦振荡电路,RC串并联电路为选频网络兼正反馈网络,还搭配基本放大电路【负反馈同相放大电路】
2.HSE;high speed external clock高速外部时钟;外部时钟通常使用简单便捷的晶振,实际上,只要能提供所需要的时钟,用任何的外部时钟都是可以的
3.LSI;low speed internal clock低速内部时钟;同上
4.LSE;low speed external clock低速外部时钟;同上
5.PLL;phase-locked loop锁相环,其作用仅为倍频;锁相环可以说,原理极为复杂,作用极为简单
野火论坛202007271531538073..png
野火论坛202007271532019455..png
野火论坛202007271532097812..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 15:35:53 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-27 15:36 编辑

在对时钟进行编程时,我们会发现,配置的都是interface(接口的时钟),我们可以理解接口是一个人,然后接口中的各种寄存器(端口)是这个人的所有器官,时钟是这个人的心脏产生的脉搏,由脉搏使得所有的器官正常运转。
野火论坛202007271535471157..png
野火论坛202007271536535333..png
野火论坛202007271536471302..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 15:38:04 | 显示全部楼层
前两天发的帖子的数据都丢失了,我很伤心,完全没有那两天的灵感了,只能将就着重新写一下
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-7-27 17:06:32 | 显示全部楼层
今晚把EXTI代码写完,一起总结一下中断的知识
回复 支持 反对

使用道具 举报

发表于 2020-7-27 17:51:48 | 显示全部楼层
加油 加油  ......
回复 支持 反对

使用道具 举报

发表于 2020-7-28 09:17:58 | 显示全部楼层
加油加油
回复

使用道具 举报

发表于 2020-7-28 15:33:13 | 显示全部楼层

加油加油
回复

使用道具 举报

 楼主| 发表于 2020-7-30 22:28:43 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-7-30 22:29 编辑

最近学习知识遇见瓶颈了,我的确需要抓抓紧了。立flag,8.15日前完成中级篇。
不管怎么说我基础知识还是可以的,有这个信心。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-2 15:53:46 | 显示全部楼层
今晚差不多能把USART整个弄完,加油,奥里给!弄完USART就立马阶段性总结一下!总结可能会迟到但永远不会缺席!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 21:29:38 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-8-4 10:30 编辑

概述:NVIC(中断嵌套向量控制器),控制着关于中断请求信号的所有属性。NVIC不会对中断向量表和中断服务程序产生任何影响,因为中断向量表和中断服务程序的位置是固定的,全部都是存放在内存当中的。
了解一个外设,就要从初始化结构体NVIC_InitTypeDef开始:
1.严肃一点来说:
NVIC_IRQChannel;选定是哪个中断请求信号,类似于中断类型码,根据中断类型码就可以直接找到中断向量表中,中断向量的地址
NVIC_IRQChannelPreemptionPriority;设置选定的中断请求信号的主优先级
NVIC_IRQChannelSubPriority;设置选定的中断请求信号的子优先级
NVIC_IRQChannelCmd;设定该选定的中断请求信号是否能够触发中断服务函数
通过NVIC_Init函数实现上述设定。
另外,设置主/子优先级,就势必会涉及到优先级的范围的设定,并且必须最先设定优先级的范围
问:如何设置优先级的范围呢?
答:通过优先级分组函数NVIC_PriorityGroupConfig来设定主/子优先级的范围;
2.戏谑一点来说:
身为中断向量嵌套控制器的NVIC,是众多中断服务程序(ISR)的经纪人,每个中断向量服务程序(ISR)都是中断圈的大名人,并且这些大名人的地址都在一个叫做中断向量表的地方,
时不时的就有一些朋友来请他们开演唱会,吃饭,NVIC为了保证自己的艺人能够整齐划一,按照规律的进行一系列活动,
就会将圈外朋友们发送过来的中断请求进行分级,不仅可以分级,还可以让某些中断请求信号无法触发中断服务函数。
野火论坛202008032128161378..png
野火论坛202008032129122313..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 21:40:10 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-8-3 21:48 编辑

说好听点,NVIC是一个控制器,控制着中断请求信号的属性
说不好听点,NVIC就是一个保安,让不让IRQ触发ISR,IRQ是第几个触发
讲完了保安,该讲讲ISR了
1.ISR的入口地址叫做中断向量,中断向量是32bit,指明了ISR在内存的具体位置,由这些中断向量组成了中断向量表,中断向量表从内存中的最低位0x0000 0000开始存储,中断向量表中的内容就是ISR的入口地址
说白了,中断向量表就是个ISR入口地址的集合
2.再具体一点,问:ISR这个服务程序的函数定义是怎样的呢?答:函数定义是自定义的
在stm32f10x_it.c文件当中,想怎么写就怎么写,唯独需要注意的就是函数名
函数名就是地址,就是ISR的入口地址,如果函数名起得不对,就会找不到这个函数,所以函数名一定要写对,这个概念可以从启动文件(汇编源文件.s)中找到
野火论坛202008032141223720..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 22:06:11 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-8-4 10:55 编辑

EXTI(外部中断/事件控制器),我对产生事件不熟悉,这里只谈产生中断
可以清晰地看到,EXTI中断一支直接连接NVIC控制器,所以它在中断一支,天生就是用来传输中断请求信号,他的使命,命运就是传输中断请求信号
EXTI的输入有很多,具体细节不赘述,被EXTI选中的输入,就是中断源,有可能EXTI输入源也就是中断源本来不是很想成为中断源,但是没有办法,它被我们选中了
被选中的信号的使命就是作为中断源。
问:如何产生中断请求信号?答:通过设置上升沿出发选择寄存器或下降沿触发选择寄存器,根据中断源信号的变化,可能是上升沿来临时产生中断请求信号,也可能是下降沿来临时产生中断请求信号,
也可能是上升沿,下降沿来临时都会产生中断请求信号,这些信号被送到NVIC当中进行排队。在这里分享一下使用固件库函数来编写ISR
野火论坛202008032205078803..png
野火论坛202008032205285133..png
野火论坛202008032208202736..png
野火论坛202008041055309808..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-3 22:11:55 | 显示全部楼层
今天USART第五节完成,预计明天可以将整个USART代码和概念基本搞清,可以把总结完成,8.5要开始复习考试课程了,开学考完试会加快进度的!
燃烧吧!我的青春!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-4 09:17:16 | 显示全部楼层
理科学生最应该培养什么能力?
私以为是:1.好读书,读好书的自学能力;2.坐得住板凳
回复 支持 1 反对 0

使用道具 举报

发表于 2020-8-7 10:43:45 | 显示全部楼层
理科生这字写的比文科生还漂亮啊
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-8-11 14:16:23 | 显示全部楼层
我估计得花一些时间弄学校的东西了,32先停一停
回复 支持 反对

使用道具 举报

发表于 2020-8-12 16:09:15 | 显示全部楼层
加油加油
回复

使用道具 举报

发表于 2020-8-13 08:20:27 | 显示全部楼层
楼主的字好看,加油加油
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-15 20:48:50 | 显示全部楼层
我也想加油.....但说实话,最近的事情太多了.....
回复 支持 反对

使用道具 举报

发表于 2020-8-16 08:54:37 | 显示全部楼层
一起加油
回复

使用道具 举报

发表于 2020-8-19 18:40:53 | 显示全部楼层
继续努力吧
回复 支持 反对

使用道具 举报

发表于 2020-8-20 11:12:42 | 显示全部楼层
Richard_Winters 发表于 2020-8-15 20:48
我也想加油.....但说实话,最近的事情太多了.....

继续啊   楼主      
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-8-20 12:43:10 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-8-20 12:45 编辑
fire 发表于 2020-8-20 11:12
继续啊   楼主

火哥放心,这段时间考试有点多,8.23就闲下来了,我自己也是十分愧疚
回复 支持 反对

使用道具 举报

发表于 2020-8-20 15:57:46 | 显示全部楼层
太强了,加油
回复 支持 反对

使用道具 举报

发表于 2020-8-21 16:34:03 | 显示全部楼层
加油,很棒
回复

使用道具 举报

发表于 2020-8-22 08:48:46 | 显示全部楼层
我这都毕业五年的人都没赶上你这速度,加油!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 10:57:45 | 显示全部楼层
终于把IIC弄完了......这八天学的东西太多.....我都不知道该从哪里说起了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 11:21:25 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-8-30 11:23 编辑

在配置IIC的时候,突然不明白为什么那么多的外设为什么都要占用GPIO接口电路,于是我再次浏览了GPIO接口电路的资料,才懂了一点点GPIO复用功能(Alternate Function)的妙处,我发的GPIO.pdf GPIO.pdf (2.12 MB, 下载次数: 37) 就已经能够说明全部问题了,这里我再补充一下。
大家如果翻开手册的GPIO接口电路图中输出模块(虽然输入模块没有使用数据选择器,但是也完全可以这样理解) 野火论坛202008301103196903..png ,会发现一个梯形的逻辑符号,这个逻辑符号代表着数的据选择器(multiplexer)也叫做复用器,它的作用就是选择其中的一个信号进行输出。这里的数据选择器有两个选择:1.输出GPIO自己的DR中的数据2.输出其他外设中DR中的数据
GPIO自己有自己的数据寄存器,其他的外设也都有自己的数据寄存器,我们要明确,数据寄存器仅仅是存储数据的芯片,它本身并没有输出或输入的能力,但是如果装备上了对应寄存器的接口电路,接口电路就能帮他输入输出数据,所以,有强大的接口电路也是很重要的
GPIO就是这样的一类设备,他有着极其强大的接口电路帮助他输入输出,以至于GPIO提供了多种输入输出模式,我们为了避免每一个外设都要额外的装备相同重复的输入输出接口电路从而引起不必要的资源浪费和巨大的引脚数目,所有外设的输入输出都来蹭GPIO的,所以我们再回顾一下,为什么GPIO叫做GPIO?因为他最主要的功能就是提供输入输出这样的功能,所以才叫做通用输入输出接口电路。再深一点说,因为任意一个外设都公用GPIO作为引脚,大大减少了引脚数目,并且同样一个引脚可以做不同的事情,可以传输不同意义的信号,我们管这样的引脚就叫做复用引脚。
野火论坛202008301122186912..png
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 11:29:35 | 显示全部楼层
本帖最后由 Richard_Winters 于 2020-8-30 11:44 编辑

我想说的也都在这些文件中了,我估计肯定没有多少人会看的。其中EEPROM的内部存储结构我用符合IIC协议的传送格式抽象了一下,自己画了出来

存储器.pdf

11.79 MB, 下载次数: 33

EEPROM.pdf

820.16 KB, 下载次数: 29

IIC.pdf

1.52 MB, 下载次数: 30

回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-8-30 11:34:20 | 显示全部楼层
在Google上找到了一个更好的AT24C02文件,其中他的StandbyMode待机模式说的就很清楚
想要处于待机状态,只有两种可能:
1.EEPROM上电后立马进入待机模式
2.EEPROM在接收到STOP信号*并且(and)*完成了内部的操作后才能进入到待机模式
野火论坛202008301132368667..png

AT24C02C.pdf

954.67 KB, 下载次数: 18

回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-11-24 22:02 , Processed in 0.073130 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表