本章节主要讲解:模拟spi、硬件spi、两种方法驱动6针oled、模拟i2c、硬件i2c、硬件i2c驱动mpu6050
一、硬件spi
1、首先是基础知识,这里参考正点原子的资料:s
2、接下来讲一讲硬件spi及cubemx配置方法:
这里在cubemx配置,Mode部分配置是全双工还是半双工还是单线通信,是主机模式还是从机模式,如果是单线,那么是只接受还是只接受
Hardware NSS Signal配置NSS信号由硬件(NSS管脚)还是软件(使用SSI位)管理:内部NSS信号有SSI位控制
最下面配置一些参数,包括但不限于数据大小,第一位是MSB位还是LSB位,串行同步时钟的空闲电位状态等等,和谐都可以和前面给出的正点原子的资料对应起来
至于使用的spi复用到哪一组引脚可以在芯片上标记
生成的代码如下:
spi初始化部分
spi回调函数部分,在这里配置好端口,注意如果要配置多个spi,那么也只能有一处回调函数。
初始化和回调的代码和正点原子几乎的一样的
正点原子多给了一个速度设置函数和读写字节函数,可以用来和w28q128(flash)通信使用,具体的移植代码这里不放出来了
这里重点看一下hal库的spi初始化代码(在spi初始化里面),这里的形式参数是一个类型别名的结构体变量
这是这个结构体类型对应的成员,是硬件spi的一些基础参数
比较特殊的是SPI_TypeDef和SPI_InitTypeDef这两个结构体类型(是嵌套在主结构体类型里面的)
具体用法也不说了,前面的正点原子资料说的很清楚了
二、应用:分别用模拟spi和硬件spi驱动6针oled
注意1:模拟spi是利用四个端口来模拟硬件spi,这样的好处是通用型强,不管怎样的32单片机,只要配置四个GPIO就可以。硬件spi的话不同单片机需要有不同的配置(引脚、功能等),通用型相对模拟spi比较低,但是硬件spi的性能比模拟spi强。
注意2:信泰微电子卖的oled有4针(i2c驱动)、6针(spi驱动)、7针(spi/i2c驱动)三种版本,这里用的是6针的。
注意3:模拟spi驱动6针oled不可以使用刷新函数
硬件spi可以使用刷新函数,但中文汉字的具体代码需要修改
1、模拟spi驱动6针oled:
配置好四个端口
将端口在这里对应好
然后接线接可以了,scl(时钟)、sda,rst、dc对应着接就可以了
主函数怎么编写代码,怎么用取模软件、怎么去显示动态变量/汉字/图片、每一种oled函数怎么用限于篇幅这里都不说了
2、硬件spi驱动oled:
配置好spi,这样就有了mosi、miso和sck
dc和rst还是得用端口模拟(也得配置一下端口)
然后scl—scl,sda—mosi,rst—rst,dc—dc
主函数怎么编写代码也省略了,具体的oled移植代码限于篇幅也省略了
三、模拟i2c
模拟i2c是正点原子提供的,因为stm32的硬件i2c是鸡肋,为了规避版权而弄的很复杂,效率低,所以才使用了模拟i2c,用两个端口来模拟
模拟i2c代码部分(.c+.h):
利用这些i2c函数就可以实现一定的操作了
四、硬件i2c
1、cubemx配置:
2、代码部分:
这里也是和spi差不多,一个初始化去配置基础参数,一个回调函数(被HAL_I2C_Init调用)去配置端口
还有一些其他硬件i2c函数,具体的知识可以参考对应系列芯片的st中文参考手册和其他csdn博客,这里博主用的不多,就不展开了
五、应用:用硬件i2c驱动mpu6050
1、配置好硬件i2c,这里省略了
2、将mpu和inv代码移植过来,在mpu6050.h里面对应好I2c结构体和端口初始化函数,要和刚刚配置的i2c对应好。至于mpu6050的移植代码,可以去csdn找,f1/f4/h7等等都是有的。当然了如果单片机比较厉害,自带陀螺仪,那么就不要再去单独买了,直接写代码即可
3、具体的主函数内使用这里也不讲了,这里就是讲讲移植的思路
4、mpu6050也可以用模拟i2c驱动,这里限于篇幅就不展开了
上一篇:利用usmart组件对stm32进行调试
下一篇:stm32F407zgt6的LCD+FSMC
推荐阅读最新更新时间:2024-11-13 00:23
设计资源 培训 开发板 精华推荐
- AM2S-1209SH30Z 9V 2瓦直流转直流转换器的典型应用
- 基于MFRC523的PEGODA非接触式智能卡读卡器
- 使用 ON Semiconductor 的 CS-8151 的参考设计
- 60W、19V 交流转直流单输出电源,适用于台式电脑电源
- TCR5SB30U、200mA、3V输出电压CMOS低压降稳压器的典型应用
- 电机预驱IC和外部FET驱动板的评估板
- DC414B,基于 LTC1871 升压 DC-DC 转换器的演示板
- 用于可调电流源的 LT1764AEQ LDO 稳压器的典型应用
- SY88903AL 3.3V、突发模式1.25Gbps PECL高灵敏度限幅后置放大器TTL信号丢失的典型应用
- 【涂鸦智能】室内环境监控器