完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
本篇文章来讲解I2C的配置以及EEPROM的调通,还是先来分析我们的原理图,了解要用到哪个引脚
IIC对于EEPROM的读取,这里设计到IIC总线和寻址,具体的原理还有什么的可以去百度或者看手册,我就不说了。这里呢A0 A1 A2表示地址,0x00,这里后面要用到来寻址。 了解了之后呢,准备去选择,配置RCC还有SYS的部分别忘了,我就不写了,前两篇文章都有过了 因为要用到UART来打印结果,所以也不要忘记配置UART串口哦,这里可能会有很多的坑,我这篇文章写的比较详细,可以参考。 STM32CubeMX串口通信调试避坑(胎教级教程) 这里呢打开之后我就全部默认,没有修改。GPIO口对应上了就行。 然后就是生成这个初始化后的程序,准备去写测试函数进行写入写出的操作。 IIC写函数 HAL_I2C_Master_Transmit(I2C_HandleTypeDef *hi21, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);12参数:
HAL_I2C_Master_Receive(I2C_HandleTypeDef *hi21, uint16_t DevAddress, uint8_t *pData, uint16_t Size, uint32_t Timeout);12IIC写多个数据 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);/* 第1个参数为I2C操作句柄 第2个参数为从机设备地址 第3个参数为从机寄存器地址 第4个参数为从机寄存器地址长度 第5个参数为发送的数据的起始地址 第6个参数为传输数据的大小 第7个参数为操作超时时间 */12345678910
硬件IIC读取 在mian.c文件前面声明,写地址和读地址 ,定义写数据数组,和读数据数组 /* USER CODE BEGIN PV */#include 在 stm32f4xx_hal.c中包含#include #include "stm32f4xx_hal.h"#include /** * 函数功能: 重定向c库函数printf到DEBUG_USARTx * 输入参数: 无 * 返 回 值: 无 * 说 明:无 */int fputc(int ch, FILE *f){ HAL_UART_Transmit(&huart1, (uint8_t *)&ch, 1, 0xffff); return ch;}/** * 函数功能: 重定向c库函数getchar,scanf到DEBUG_USARTx * 输入参数: 无 * 返 回 值: 无 * 说 明:无 */int fgetc(FILE *f){ uint8_t ch = 0; HAL_UART_Receive(&huart1, &ch, 1, 0xffff); return ch;}123456789101112131415161718192021222324在main.c中添加 /* USER CODE BEGIN 2 */ for(i=0; i<256; i++) WriteBuffer=i; /* WriteBuffer init */ printf("rn***************I2C Example 测试*******************************rn"); 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) { printf("rn EEPROM 24C02 Write Test OK rn"); HAL_Delay(20); } else { HAL_Delay(20); printf("rn EEPROM 24C02 Write Test False rn"); } } /* // wrinte date to EEPROM 如果要一次写一个字节,写256次,用这里的代码 for(i=0;i
/* // wrinte date to EEPROM 如果要一次写一个字节,写256次,用这里的代码 for(i=0;i 经测试,例程正常 (自己的测试图片当时没截图,就用别人的了,问题不大,结果都一样,这个实验也没有什么太多的坑,体验还比较良好) |
|
|
|
只有小组成员才能发言,加入小组>>
调试STM32H750的FMC总线读写PSRAM遇到的问题求解?
1975 浏览 1 评论
X-NUCLEO-IHM08M1板文档中输出电流为15Arms,15Arms是怎么得出来的呢?
1760 浏览 1 评论
1232 浏览 2 评论
STM32F030F4 HSI时钟温度测试过不去是怎么回事?
819 浏览 2 评论
ST25R3916能否对ISO15693的标签芯片进行分区域写密码?
1776 浏览 2 评论
2015浏览 9评论
STM32仿真器是选择ST-LINK还是选择J-LINK?各有什么优势啊?
890浏览 4评论
stm32f4下spi+dma读取数据不对是什么原因导致的?
318浏览 3评论
STM32F0_TIM2输出pwm2后OLED变暗或者系统重启是怎么回事?
670浏览 3评论
661浏览 3评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-2-23 16:49 , Processed in 0.795488 second(s), Total 75, Slave 59 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191