STM32 i2c读写寄存器地址8位,16位的方法

这篇具有很好参考价值的文章主要介绍了STM32 i2c读写寄存器地址8位,16位的方法。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

一般常用的寄存器地址是8位的,遇到一个寄存器地址为16为的器件。总结一下代码编写。

寄存器地址16位的为SY103,寄存器地址为8位的为LT7911.

测试代码

void DebugLEDTask(void *argument)
{
	uint8_t input[2]={0x00,0x7f};
	uint8_t value[2]={0x00,0x00};
	uint8_t num=sizeof(input)/sizeof(input[0]);
	uint8_t input1[1]={0x01};
	uint8_t value1[1]={0x00};
	uint8_t num1=sizeof(input1)/sizeof(input1[0]);	
  /* USER CODE BEGIN DebugLEDTask */
  /* Infinite loop */  
  for (;;)
  {
    HAL_GPIO_TogglePin(MCU_LED_GPIO_Port, MCU_LED_Pin);
    osDelay(1000);
	HAL_I2C_Mem_Write(&hi2c2, LT_ADDRESS, AUDIO_CHANNEL_ADDRESS, I2C_MEMADD_SIZE_8BIT, input1, num1,1000);
	HAL_I2C_Mem_Read(&hi2c2, LT_ADDRESS, AUDIO_CHANNEL_ADDRESS, I2C_MEMADD_SIZE_8BIT, value1, num1,1000);
	HAL_I2C_Mem_Write(&hi2c2, SY_ADDRESS_WRITE, SY_GAMSET_1_ADDRESS, I2C_MEMADD_SIZE_16BIT, input, num,1000);
	HAL_I2C_Mem_Read(&hi2c2, SY_ADDRESS_WRITE, SY_GAMSET_1_ADDRESS, I2C_MEMADD_SIZE_16BIT, value, num,1000);
  }
  /* USER CODE END DebugLEDTask */
}

lt7911该位置寄存器参考手册

i2c只操作地址的几位,stm32,单片机

sy103该位置寄存器参考手册

i2c只操作地址的几位,stm32,单片机

仿真测试

i2c只操作地址的几位,stm32,单片机

可以看到把值写入到相对应的寄存器内,并且读出。文章来源地址https://www.toymoban.com/news/detail-802918.html

到了这里,关于STM32 i2c读写寄存器地址8位,16位的方法的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【STM32】STM32学习笔记-硬件I2C读写MPU6050(35)

    I2C(Inter-Integrated Circuit)总线是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 串行的 8 位双向数据传输位速率在标准模式下可

    2024年01月25日
    浏览(57)
  • 【STM32】STM32学习笔记-软件I2C读写MPU6050(33)

    I2C(Inter-Integrated Circuit)总线 是一种由NXP(原PHILIPS)公司开发的两线式串行总线,用于连接微控制器及其外围设备。多用于主控制器和从器件间的主从通信,在小数据量场合使用,传输距离短,任意时刻只能有一个主机等特性。 串行的 8 位双向数据传输位速率在标准模式下可

    2024年01月21日
    浏览(61)
  • 【STM32学习】——I2C通信协议&MPU6050姿态传感器&软件I2C读写MPU6050

    ​   目录 前言 一、I2C通信协议 1.简介 2.硬件电路设计 3.I2C时序(软件)

    2024年02月16日
    浏览(51)
  • 【STM32学习】——STM32-I2C外设&硬件读写MPU6050&软硬件读写波形对比

    目录 前言 一、I2C外设 二、硬件I2C操作流程 1.主机发送时序 3.其他时序

    2024年02月10日
    浏览(45)
  • 关于Linux下i2c-tool工具(i2cdetect/i2cget/i2cset/i2ctransfer)及memtool32工具直接操作寄存器的使用

    1. 首先本人是直接下载的i2c-tool和memtool32工具到开发板内直接使用: 2. i2cdetect命令:该命令是用于扫描板卡内i2c总线上的设备 输入./i2cdetect,会出现i2cdetect指令的语法操作说明 参数说明:         参数y:关闭交互模式,使用该参数时,不会提示警告信息。         参

    2024年04月27日
    浏览(39)
  • 【STM32CubeMX+HAL库】I2C详解+读写EEPROM

    在之前的标准库中,STM32的硬件IIC非常复杂,更重要的是它并不稳定,所以都不推荐使用。但是在我们的HAL库中,对硬件IIC做了全新的优化,使得之前软件IIC几百行代码,在HAL库中,只需要寥寥几行就可以完成 那么这篇文章将带你去感受下它的优异之处。 通过本篇博客您将

    2024年02月03日
    浏览(52)
  • STM32 | STM32时钟分析、GPIO分析、寄存器地址查找、LED灯开发(第二天)

    寄存器 :寄存器的功能是存储二进制代码,它是由具有存储功能的触发器组合起来构成的。一个触发器可以存储1位二进制代码,故存放n位二进制代码的寄存器,需用n个触发器来构成 在计算机领域,寄存器是CPU内部的元件,包括通用寄存器、专用寄存器和 控制寄存器 。寄存

    2024年03月08日
    浏览(50)
  • 寄存器内存读写指令(二) —— 多寄存器读写 LDM / STM

    有的时候,CPU可能会遇到 a++; b++; c++,这个时候为了提升效率,CPU可能会一次将多个寄存器里的变量保存到内存中。这个时候之前介绍的 LDR / STR 指令虽然也能实现,但只能操作一个寄存器的读写。 因此,考虑到这点,下面介绍多个寄存器的读写指令 将 多个寄存器 的数据写

    2024年02月07日
    浏览(58)
  • 【STM32】AT24C256硬件I2C读写,基于HAL库

    目录 一、简单介绍 二、配置工程 打开CubeMX,配置时钟,调试接口,工程名,目录等 配置iic 配置串口用于显示信息 三、硬件连接 四、代码编写 一、随机写入一个字节 测试代码 波形如下 代码编写 二、连续写入 代码如下 三、随机读取 测试代码 波形如下 代码编写 四、连续

    2024年02月03日
    浏览(48)
  • STM32存储左右互搏 I2C总线读写FRAM MB85RC16

    在较低容量存储领域,除了EEPROM的使用,还有铁电存储器FRAM的使用,相对于EEPROM, 同样是非易失性存储单元,FRAM支持更高的访问速度, 其主要优点为没有EEPROM持续写操作跨页地址需要变换的要求,没有写之后的延时等待要求。MB85RC16是2K Byte(16K bit)的FRAM,能够按字节进行写

    2024年02月09日
    浏览(41)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包