Step 3, 把地址模式改为 7BIT: Step 4, 操作EEPROM,我们不使用例子中的 HAL_I2C_Master_Transmit 和 HAL_I2C_Master_Receive,这两个函数适用于两个 I2C 器件之间进行数据传输。我们这里要用的是下面这两个函数: HAL_I2C_Mem_Write( I2C_HandleTypeDef *hi2c, // 使用的 I2C 模块
hi2c1.Init.AddressingMode = I2C_ADDRESSINGMODE_7BIT; hi2c1.Init.DualAddressMode = I2C_DUALADDRESS_DISABLE; hi2c1.Init.OwnAddress2 = 0; hi2c1.Init.GeneralCallMode = I2C_GENERALCALL_DISABLE; hi2c1.Init.NoStretchMode = I2C_NOSTRETCH_DISABLE; if (HAL_I2C_Init(&hi2c1) != HAL_OK) { ...
writeCplt =0;HAL_I2C_Mem_Write_IT(&hi2c1,0xa0, addr, I2C_MEMADD_SIZE_8BIT, &addr,1);while(writeCplt ==0);HAL_Delay(20); readCplt =0;HAL_I2C_Mem_Read_IT(&hi2c1,0xa0, addr, I2C_MEMADD_SIZE_8BIT, &data,1);while(readCplt ==0);printf("addr : 0x%02x, data : 0x%02...
staticuint8_tram[256];// 模拟I2C从机数据寄存器(主机读写的数据都放在这块内存)uint8_toffset;// 从机寄存器当前偏移地址staticuint8_tfirst_byte_state=1;// 是否收到第1个字节,也就是偏移地址(0:已收到,1:没有收到)// 侦听完成回调函数(完成一次完整的i2c通信以后会进入该函数)voidHAL_I2C_ListenCpl...
I2C读取函数 c 复制代码 HAL_StatusTypeDef I2C_Read(uint8_t device_addr, uint8_t reg_addr, uint...
HAL_StatusTypeDef status; status = HAL_I2C_Master_Transmit(&hi2c1, DevAddress, &Reg,1, HAL_MAX_DELAY);if(status != HAL_OK) {returnstatus; }returnHAL_I2C_Master_Receive(&hi2c1, DevAddress, pData, Size, HAL_MAX_DELAY); }// 写数据到I2C设备的特定寄存器HAL_StatusTypeDefI2C_WriteRegister...
I2C写数据: I2C写数据时用 HAL_I2C_Master_Transmit 函数,函数参数信息如下: 登录后复制HAL_StatusTypeDefHAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout) **DevAddress: **7bit从机地址左移 + 1bit 0 ...
/* USER CODE BEGIN 2 */for(i=0;i<256;i++)WriteBuffer[i]=i;/* WriteBuffer init */printf("\r\n***I2C Example Z小旋测试***\r\n");for(int j=0;j<32;j++){if(HAL_I2C_Mem_Write(&hi2c1,ADDR_24LCxx_Write,8*j,I2C_MEMADD_SIZE_8BIT,WriteBuffer+8*j,8,1000)==HAL_OK){...
stm32 HAL库教程,最小系统板教学,手把手搭建面包板电路,手把手敲代码,全动画演示,FOC平衡车项目~, 视频播放量 38375、弹幕量 67、点赞数 490、投硬币枚数 345、收藏人数 750、转发人数 63, 视频作者 铁头山羊, 作者简介 做感动人心的课程,相关视频:铁头山羊stm32 入
HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, // 使用的 I2C 模块的 Handle 的指针uint16_t DevAddress, // I2C 器件的地址,这里是 24C02 的地址 0xA0uint16_t MemAddress, // 存储器内部地址uint16_t MemAddSize, // 存储器内部地址位数 8BIT or 16BIT ?uint8_t *pData, // 接收数据缓冲区指针...