STM32_H750_I2C

这篇博客详细介绍了如何在STM32_H750上使用I2C接口操作EEPROM AT24C02,包括I2C的读写函数、设备检查、获取I2C状态的函数,并提供了读写多个字节以及按页写的实现。此外,博主分享了两个链接,分别提供了DMA发送中断回调的工程和MY_QuinTA的相关笔记。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

STM32_H750_I2C

读写EEPROM AT24C02
I2C写函数

HAL_StatusTypeDef HAL_I2C_Mem_Write(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout);

读函数

HAL_StatusTypeDef HAL_I2C_Mem_Read(I2C_HandleTypeDef *hi2c, uint16_t DevAddress, uint16_t MemAddress, uint16_t MemAddSize, uint8_t *pData, uint16_t Size, uint32_t Timeout
STM32H750单片机开发板基础代码60例实验例程软件工程源码合集: 实验0 新建工程实验 实验1 跑马灯实验 实验10 电容触摸按键实验 实验11 OLED实验 实验12 内存保护(MPU)实验 实验13 TFTLCD(MCU屏)实验 实验14 SDRAM实验 实验15 LTDC LCD(RGB屏)实验 实验16 USMART调试实验 实验17 RTC实验 实验18 硬件随机数实验 实验19 待机唤醒实验 实验2 按键输入实验 实验20 ADC实验 实验21 内部温度传感器实验 实验22 DAC实验 实验23 PWM DAC实验 实验24 DMA实验 实验25 IIC实验 实验26 IO扩展实验 实验27 光环境传感器实验 实验28 SPI实验 实验29 QSPI实验 实验3 串口通信实验 实验30 485实验 实验31 FDCAN实验 实验32 触摸屏实验 实验33 红外遥控器实验 实验34 DS18B20数字温度传感器实验 实验35 DHT11数字温湿度传感器实验 实验36 ICM20608六轴传感器实验 实验37 无线通信实验 实验38 FLASH模拟EEPROM实验 实验39 摄像头实验 实验4 外部中断实验 实验40 内存管理实验 实验41 SD卡实验 实验42 NAND FLASH实验 实验43 FATFS实验 实验44 汉字显示实验 实验45 图片显示实验 实验46 硬件JPEG解码实验 实验47 照相机实验 实验48 音乐播放器实验 实验49 录音机实验 实验5 独立看门狗实验 实验50 SPDIF(光纤音频)实验 实验51 视频播放器实验 实验52 FPU测试(Julia分形)实验 实验53 DSP测试实验 实验54 手写识别实验 实验55 T9拼音输入法实验 实验56 串口IAP实验 实验57 USB读卡器(Slave)实验 实验58 USB声卡(Slave)实验 实验59 USB虚拟串口(Slave)实验 实验6 窗口看门狗实验 实验60 USB U盘(Host)实验 实验61 USB鼠标键盘实验(Host) 实验62 网络通信实验 实验63 UCOSII实验1-任务调度 实验64 UCOSII实验2-信号量和邮箱 实验65 UCOSII实验3-消息队列、信号量集和软件定时器 实验65 综合例程 实验7 定时器中断实验 实验8 PWM输出实验 实验9 输入捕获实验
### STM32H750VBT6 I2S接口配置指南 对于STM32H750VBT6微控制器而言,I2S(Inter-IC Sound)是一种用于音频设备之间传输声音数据的串行总线标准。为了实现该功能,在使用STM32CubeMX工具创建新项目时可以选择初始化相应的外设资源。 #### 配置过程概述 利用STM32CubeMX图形界面完成基本设置后,会自动生成初始化代码框架。针对I2S的具体参数设定主要包括以下几个方面: - **模式选择**:支持Master/Slave两种工作方式; - **协议定义**:提供 Philips, MSB 和 LSB 刚好三种不同的帧同步格式选项; - **采样频率范围**:依据实际应用场景灵活调整; - **声道数量及宽度**:单声道还是立体声;16位或32位样本精度等特性[^1]。 #### 实际操作步骤说明 在完成了上述初步配置之后,还需要进一步编写应用程序逻辑来控制I2S的数据发送接收流程。这里给出一段基于HAL库编写的简单示例程序片段作为参考: ```c /* 用户应用层函数 */ void Audio_Transmit(uint16_t* pBuffer, uint16_t Size){ /* 启动DMA传输并等待结束标志 */ HAL_I2S_Transmit_DMA(&hi2s3, pBuffer, Size); while(HAL_I2S_GetState(&hi2s3)!= HAL_I2S_STATE_READY){} } // 初始化回调处理 void HAL_I2S_MspInit(I2S_HandleTypeDef* hi2s){ GPIO_InitTypeDef GPIO_InitStruct = {0}; if(hi2s->Instance==SPI3){ __HAL_RCC_SPI3_CLK_ENABLE(); // 设置GPIO引脚为AF模式 __HAL_RCC_GPIOC_CLK_ENABLE(); /**I2S3 GPIO Configuration PC7 ------> I2S3_MCK PC10 ------> I2S3_SCK PC12 ------> I2S3_WS PB15 ------> I2S3_SD*/ GPIO_InitStruct.Pin = GPIO_PIN_7|GPIO_PIN_10|GPIO_PIN_12; GPIO_InitStruct.Mode = GPIO_MODE_AF_PP; GPIO_InitStruct.Pull = GPIO_NOPULL; GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_VERY_HIGH; GPIO_InitStruct.Alternate = GPIO_AF6_SPI3; HAL_GPIO_Init(GPIOC, &GPIO_InitStruct); GPIO_InitStruct.Pin = GPIO_PIN_15; GPIO_InitStruct.Alternate = GPIO_AF7_SPI3; HAL_GPIO_Init(GPIOB, &GPIO_InitStruct); // DMA通道使能... } } ``` 这段代码展示了如何通过调用`HAL_I2S_Transmit_DMA()`方法来进行异步的数据写入操作,并且包含了必要的中断服务例程以确保通信顺利完成。同时注意到了对外围电路连接关系进行了详细的描述以便于理解各个信号线路的功能作用。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值