历史上的今天
返回首页

历史上的今天

今天是:2025年08月08日(星期五)

正在发生

2019年08月08日 | STM32硬件I2C问题

2019-08-08 来源:eefocus

1.CUBEMX生成代码后I2C总线初始化一直出现 I2C_FLAG_BUSE

1.1 环境:


 1.2 硬件I2C配置为默认,管脚如下


1.3 时钟等其他 配置完成后生成工程


1.4 添加代码


在i2c.c文件中的的void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)函数中添加如下代码


__I2C2_FORCE_RESET();

__I2C2_RELEASE_RESET();

实际如下图


这里采用读取板载的MPU6050的设备地址来确认硬件I2C是否工作正常。 主函数里main.c添加程序如下:


/* USER CODE BEGIN PV */

/* Private variables ---------------------------------------------------------*/

uint8_t device_id_reg = 0x75; //存放MPU6050设备地址的寄存器

uint8_t device_id = 0x68; //MPU6050设备地址,0x75寄存器读取的地址与此相同

uint8_t device_id_reg_ret; //用来存放读取的设备地址

/* USER CODE END PV */

在while循环里添加读取设备地址代码,效果如下:


while (1)

 {

 

 /* USER CODE END WHILE */

 

 /* USER CODE BEGIN 3 */

 uint32_t cnt = 0;

 HAL_Delay(10);

 if(cnt%10==0)

 {

HAL_GPIO_TogglePin(LED0_GPIO_Port,LED0_Pin | LED1_Pin);

 }

 if(cnt%20==0)

 {

HAL_I2C_Mem_Read(&hi2c1,device_id<<1 , 0X75, I2C_MEMADD_SIZE_8BIT,&device_id_reg_ret,1, 1000);//读MPU6050的ID

printf("MPU6050device_id %xrn",device_id_reg_ret);

 }

cnt++;

 }

编译下载后在串口可以看到打印信息: 

与给定的设备地址相同,说明代码配置的硬件i2c可用

推荐阅读

史海拾趣

European Crystal Org公司的发展小趣事

随着公司的发展,ECO逐渐在晶体技术领域取得了突破。研发团队成功开发出一种新型的高精度晶体振荡器,具有更高的稳定性和更低的功耗。这一创新产品迅速在市场上获得了广泛认可,ECO的订单量激增。同时,公司还加大了对研发的投入,不断推出新产品,满足了客户日益增长的需求。

Baumer Electric Ag公司的发展小趣事

1962年,赫尔穆特•维茨(Helmut Vietze)加入Baumer Electric Ag,成为一名模具制造工。他凭借出色的个人能力和工作表现,很快在公司中脱颖而出。1964年,公司创始人Herbert Baumer去世后,Helmut Vietze接管了管理层,并带领公司走向新的发展阶段。他的领导为公司注入了新的活力,推动了Baumer在技术和市场上的双重突破。

屹晶微(EG)公司的发展小趣事

随着业务的不断拓展和市场的不断扩大,屹晶微逐渐意识到与合作伙伴建立长期战略合作关系的重要性。于是,在2023年,他们与电子产业一站式服务平台华秋电子达成了授权代理合作。这一合作不仅为屹晶微提供了更广阔的市场渠道和客户资源,也为其未来的发展奠定了坚实的基础。

在合作过程中,华秋电子为屹晶微提供了全方位的支持和服务。他们共同推广屹晶微的芯片产品,为客户提供更优质的解决方案和服务。同时,华秋电子还利用自身的技术优势和渠道优势,帮助屹晶微拓展海外市场,提升品牌知名度和影响力。

以上两个故事只是屹晶微在电子行业中发展起来的一部分。他们的发展历程充满了挑战和机遇,但黄米龙和他的团队始终保持着坚定的信念和不懈的努力,为中国的芯片产业做出了积极的贡献。

Everspin Technologies公司的发展小趣事

Everspin一直致力于MRAM技术的创新和发展。其中,自旋转移力矩MRAM(STT-MRAM)是该公司的重要技术之一。Everspin在平面内和垂直磁隧道结(MTJ)STT-MRAM位单元的开发方面取得了显著成果,并积累了超过600项有效专利和应用的知识产权组合。这些技术的创新和专利的积累,使得Everspin在MRAM市场中保持了领先地位。

Aeroflex公司的发展小趣事

Everspin一直致力于MRAM技术的创新和发展。其中,自旋转移力矩MRAM(STT-MRAM)是该公司的重要技术之一。Everspin在平面内和垂直磁隧道结(MTJ)STT-MRAM位单元的开发方面取得了显著成果,并积累了超过600项有效专利和应用的知识产权组合。这些技术的创新和专利的积累,使得Everspin在MRAM市场中保持了领先地位。

意华(CZT)公司的发展小趣事

自1995年成立以来,意华(CZT)始终秉持“诚信”的合作态度和“创新”的发展思路。在公司初创阶段,面对激烈的市场竞争,意华坚持高质量的产品和服务,赢得了客户的信赖。同时,公司不断投入研发,推出了一系列具有创新性的电子产品和连接器,迅速在市场上树立了良好的口碑。

问答坊 | AI 解惑

AT45DB081接单片机哪几个脚要上拉电阻?

AT45DB081接单片机哪几个脚要上拉电阻?…

查看全部问答>

基于Windows CENET的设备驱动程序开发.pdf

基于Windows CENET的设备驱动程序开发.pdf…

查看全部问答>

7455焊接

 昨晚好不容易把SOSO送的7455,也是我的第三块焊好了,太难焊了,不过前两块没有白白的牺牲 ,这次总算成了,上图。   这个是正面。   与一元硬币的大小比较,可想而知了。     最后,感谢国家感谢我党。 特别是 ...…

查看全部问答>

如何做一个带通滤波器(有源)?

1.中心频率为250KHz,带宽为100KHz(频率范围200KHz~~300KHz) 2.有源滤波器一般用到运放,应该选折何种运放,型号是什么? 3.通常情况下,是不是有源滤波器都能代替无源滤波器?     因为是手头上没有精确的电容和电感,电感一般都是 ...…

查看全部问答>

(告急!!)单片机电路板问题

\"89s51\" 在做好简单电路板时候 单片机不会起作用啊 里面我程序是P0 P1 P2 P3循环变1 0的 周期为2s   但是没有反应   是什么问题呢?  晶振12MHz(在开发板用的没问题的 )    电容c为20 20 (用30 30也不行 ...…

查看全部问答>

6410 2d加速的BitBLt运行不正常。弄过的兄弟给点建议

在linux 2.6.33上弄的,只想实现最简单的从一块区域拷贝到另外一块区域显示的功能。 将(linux 2.6.28的)中g2d部分的代码移植到了video s3c-fb中,通过io_ctrl实现的。但移植的代码更本不能使用。 然后自己按照手册,配置的寄存器。 从FIFO sta ...…

查看全部问答>

求TINA下载地址!

本帖最后由 dontium 于 2015-1-23 13:00 编辑 找不到啊找不到! …

查看全部问答>

Linux IIC驱动笔记

Linux IIC驱动笔记最近看了百问网的linux驱动视频,关于IIC部分总结如下:因字数超过限制,具体见附件!  …

查看全部问答>

求助:最近做了个8x8led对应8x8矩阵键盘

求助:最近做了个8x8led对应8x8矩阵键盘 要求是:8x8led随机点亮,按下对应的按钮,灭掉该灯,亮下一个。 问题是:后面我画了个proteus仿真,没搞懂什么昨天正常,今天怎么检测不到键盘了?没找到问题 麻烦大家看下。。。,,,附上程序及仿真 ...…

查看全部问答>