STM32学习12
发布日期:2021-09-30 15:11:41 浏览次数:6 分类:技术文章

本文共 1157 字,大约阅读时间需要 3 分钟。

1.      因为IIC总线是一种非常常见而且普及的总线协议,用来对各种模块的寄存器读写从而进行配置,类似的还有SPI总线协议,虽然单片机里学过了,但是也差不多忘了,所以今天再温习一下。

2.      今天测试的也是例程上的,使用IIC对24C02进行读写操作,通过LCD屏幕显示。

3.      IIC:有起始信号,停止信号,应答信号。

4.      硬件上已经将PB6接到了IIC_SCL上,将PB7接到了IIC_SDA上,这是因为这两个端口可以端口复用成IIC总线的两根线,模式时推挽输出。

5.      GPIO:关于灵活控制某个端口为输入输出模式:

SDA也就是PB7作为输出的时候,使用50MHz的输出速度,做普通输出(CNF1 CNF0 MODE1 MODE0 =0011);当SDA作为输入时,使用复用功能,MODE保留(CNF1 CNF0 MODE1 MODE0 = 1000)

6.      IIC使用流程,我个人总结是这样的:1)配置IIC服用端口;2)检测IIC器件是否存在;3)由IIC发出起始信号,同时发送器件地址,接着就等待应答信号的产生;4)等待到了应答信号就可以发送数据出去,同样也需要进行应答信号的检测;5)那么读取其实也是类似的,具体的时序方面,其实就是根据手册上的时序图模拟一遍,注意位操作的正确性就可以了。

7.      SPI协议:接着温习SPI协议,这个协议其实在我用单片机接NRF24L01射频通信模块的时候已经有了比较深刻的理解了,为什么说深刻,因为那时候还不想现在这么浮躁,会耐下性子,一步一步的从通信协议,配置寄存器开始做起,最后花了五六天才基本搞通互发,第一个煎熬的模块。

8.      SPI是摩托罗拉公司提出的总线协议,这是一种同步,高速,全双工的串行通信协议。

9.      关于两个设置值,用来决定时钟的空闲信号和采样时机的CPOL和CPHA。

10.  CPOL=0,串行时钟的空闲状态为低电平,反之为高电平;CPHA=0,则在第一个时钟跳变时做采样,CPHA=1,则在第二个时钟跳变时做采样。

11.  如何记忆MISO和MOSI,可以拆开理解为Master In Slave Out和 Master Out Slave In。

12.  根据我之前的理解,通俗的讲,SPI协议就是,小时候玩儿的你拍一我拍一,这种节奏就是时钟,这种击掌的过程就是数据线的传输,其实也还是不够贴切。应该是像两个小朋友交换同样个数的玩具,但是他们选择一换一的节奏逐个交换,直至他们的玩具全部交换完成,那么一个小朋友就有了原来属于另一个小朋友的玩具,那么这些玩具就是数据,用来装玩具的就是寄存器,用来以一定节奏交换就是时钟。

13.  现在例程上使用的是PB12做W25Q128的CS片选,PB13做SCK,PB14做MISO,PB15做MOSI。

转载地址:https://blog.csdn.net/Insanity666/article/details/53729236 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!

上一篇:STM32学习13
下一篇:STM32学习11

发表评论

最新留言

网站不错 人气很旺了 加油
[***.192.178.218]2024年04月06日 00时03分44秒