一.对stm32 上硬件iic的解读和分析
·
一.硬件iic的初始化解读
1.stm32上硬件iic一般有三个,与模拟iic区别在于引脚固定。
2.硬件iic是属于外设的,和串口一个性质。
3.既然是外设,就有其对应的固件库。
配置界面

初始化设备的改动

主要调用的函数
其中主从设备通信用于双机通信,有来有往。
设备通信用于向设备(如oled,eeprom等)进行通信。

二.函数的解读
1.初始化硬件iic的发送进行封装
//用于向设备发送指令。
void WriteCommand(uint8_t Command)
{
uint8_t date=0;
HAL_I2C_Mem_Write(&hi2c1, 0x78,0x00, I2C_MEMADD_SIZE_8BIT,(uint8_t *)&Command, 1, 0xff);
if(HAL_I2C_IsDeviceReady(&hi2c1,0x78,100,0xffff)==HAL_OK)
{
}
}
//用于向从设备发送数据
void WriteData(uint8_t Byte)
{
HAL_I2C_Master_Transmit(&hi2c1, 0x78,(uint8_t *)&Byte, 1, 0xff);
if(HAL_I2C_IsDeviceReady(&hi2c1,0x78,100,0xffff)==HAL_OK)
{
}
}
2.iic写函数解读(一般根据对象不同能容稍有差别,但作用是一样的都是写数据到丛机)


3.iic读函数解读


三.关于从设备的地址的解读
一般通过官方的数据或设备信息中查找设备地址
例如eeprom

地址:
其中的1010 和后四位组成了设备地址。
p和A,分别是设备地址和页地址的组合。及a a a 000 ,p p p 111
通过阅读手册知道r和w对应的分别为0和1,
可以这样看对于1010 AAA r/w
1010 0001 w
1010 0000 r
转成16进制数
0xA0 读
或
0xA1 写
iic的oled屏幕的

地址
其中b7-b0共8位,其中sa0无关紧要,r 1 ,w0
0111 1000 w
0x78
0111 1010 r
0x7a
更多推荐
所有评论(0)