HAL库 IIC写和读函数

IIC写函数:HAL_I2C_Master_Transmit ();

IIC读函数:HAL_I2C_Master_Receive ();写和读函数中的从机的地址最后一位由外部硬件电路控制。

复制代码
int main(void)
{

  /* USER CODE BEGIN 1 */

  /* USER CODE END 1 */

  /* MCU Configuration--------------------------------------------------------*/

  /* Reset of all peripherals, Initializes the Flash interface and the Systick. */
  HAL_Init();

  /* USER CODE BEGIN Init */

  /* USER CODE END Init */

  /* Configure the system clock */
  SystemClock_Config();

  /* USER CODE BEGIN SysInit */

  /* USER CODE END SysInit */

  /* Initialize all configured peripherals */
  MX_GPIO_Init();
  MX_I2C1_Init();
  /* USER CODE BEGIN 2 */
	uint8_t array[] = {0x00,0x8d,0x14,0xa5};//点亮OLED屏幕的指令
	HAL_I2C_Master_Transmit (&hi2c1,0x78,array ,5,HAL_MAX_DELAY);//sizeof动态测量数组的长度																				
        //sizeof(array)/sizeof(array[0]);替换数据长度5
	//读取OLED的寄存处,OLED亮寄存器的D6变成0,不亮OLED寄存器的D6是1,参考OLED屏幕的参考手册
	uint8_t dateack;
	HAL_I2C_Master_Receive (&hi2c1,0x78,&dateack ,1,HAL_MAX_DELAY);
	//取出数据的中的第6位,屏幕开启d6=0,板载LED亮,屏幕关闭d6=1,板载LED灭
	if((dateack & (0x01<<6))==0)
	{
		HAL_GPIO_WritePin (GPIOC ,GPIO_PIN_13 ,GPIO_PIN_RESET );
	}
	else
	{
		HAL_GPIO_WritePin (GPIOC ,GPIO_PIN_13,GPIO_PIN_SET );
	}
		
	
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
  }
  /* USER CODE END 3 */
}

/**

sizeof(array)/sizeof(array0);利用sizeof关键字计算数组中的个数。

原理

  • sizeof 是 C 和 C++ 中的一个运算符,用于返回一个对象或者类型所占的字节数。
  • sizeof(array) 会返回整个数组所占用的内存字节数。
  • sizeof(array[0]) 会返回数组中单个元素所占用的内存字节数。
  • 将整个数组占用的字节数除以单个元素占用的字节数,就可以得到数组中元素的个数。

数组中所有的字节数(被SIZEOF返回)除以一个数组的字节数等于数组的位的个数。

相关推荐
西城微科方案开发15 分钟前
胎压计方案开发
单片机·嵌入式硬件
国科安芯24 分钟前
卫星星务计算机数据管理中SEU容错机制的技术实现研究——以AS32S601存储器ECC架构为例
网络·单片机·算法·fpga开发·架构·云计算·risc-v
JckOLF04Z29 分钟前
自动开机调用迅雷下载数据库备份,完成后自动关机
数据库·单片机·嵌入式硬件
国科安芯1 小时前
卫星电推进系统阀门驱动控制中的宽温域高可靠MCU应用研究——基于AS32S601电气特性与辐照试验数据的工程分析
单片机·嵌入式硬件·fpga开发·云计算·信息与通信·卫星·抗辐射芯片
Hello_Damon_Nikola2 小时前
CZL-601微型称重传感器从入门到精通
单片机·嵌入式硬件
llilian_162 小时前
基于PCI总线校时时钟同步卡的高精准授时解决方案
大数据·服务器·功能测试·单片机
破晓单片机3 小时前
093、STM32项目分享开源:蓝牙智能晾衣架系统
stm32·单片机·嵌入式硬件·开源
木由里予3 小时前
TEE(Trusted Execution Environment)技术详解
java·linux·开发语言·网络·嵌入式硬件·android-studio
zcmodeltech4 小时前
火电厂模型多设备时序控制系统设计:基于STM32与Modbus RTU的燃煤-燃机全流程联动方案
分布式·stm32·单片机·嵌入式硬件·物联网
芯岭技术14 小时前
Wi-Fi+BLE双模无线芯片 BK7238,低功耗、高性能,集成MCU和Flash
单片机·嵌入式硬件