如何直接利用STM32的硬件I2C操控

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何直接利用STM32的硬件I2C操控相关的知识,希望对你有一定的参考价值。

参考技术A 对硬件IIC不太懂的话建议使用STM32Cube生成代码,里面的需要配置的东西都很明了。该软件也是ST以后大力推广的初始化代码生成软件。配置好之后只需要调用HAL库中的发送和接收函数便可以收发数据了。另微雪课堂有详细配置教程。 参考技术B 使能I2C,就可以了

5.2.13.驱动中如何操控硬件

  1. 不变:

硬件原理不变
硬件操作接口(寄存器)不变
硬件操作代码不变

寄存器地址不变:裸机直接用物理地址,现在用虚拟地址。
编程习惯不变:裸机用函数指针操作寄存器,现在用封装好的IO读写函数来操作寄存器。

  1. 内核的虚拟地址映射方法(MMU)

两种方法:
静态映射:
在内核移植时就以代码方式硬编码,如果要改变,就要更改内核源代码然后重新编译内核。
在内核启动时建立静态映射表,关机时销毁。
类似全局变量
好处:执行效率高
坏处:始终占用虚拟地址空间
动态映射:
驱动程序根据需要随时动态的建立映射,使用,销毁映射。
类似malloc
好处:按需使用
坏处:每次都需要重新映射















以上是关于如何直接利用STM32的硬件I2C操控的主要内容,如果未能解决你的问题,请参考以下文章

stm32硬件i2c缺陷解决方法

STM32 硬件I2C 死循环 自动退出

STM32F10x_模拟I2C读写_硬件I2C读写

STM32Cube_13使用硬件I2C读写EEPROM(AT24C02)

关于STM32的I2C硬件DMA实现

stm32F407的硬件I2C稳定吗