历史上的今天
返回首页

历史上的今天

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

正在发生

2019年08月08日 | 关于stm32 hal 库 iic 一直是 busy 问题

2019-08-08 来源:eefocus

最近在用st hal iic 发现 MX_I2C1_Init(); 后 iic 就处于BUSY状态


代码跟踪后发现 具体到 HAL_I2C_MspInit 中 __HAL_RCC_I2C1_CLK_ENABLE(); 后 IIC模块就处到busy状态。


具体问题找到 ,修改如下,轻松解决问题!!


原来代码:


void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)

{


    GPIO_InitTypeDef GPIO_InitStruct;

    if(i2cHandle->Instance == I2C1)

    {

        /* USER CODE BEGIN I2C1_MspInit 0 */


        /* USER CODE END I2C1_MspInit 0 */


        /**I2C1 GPIO Configuration

        PB6     ------> I2C1_SCL

        PB7     ------> I2C1_SDA

        */

                

        GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7;

        GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;

        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

        HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);

            

        /* Peripheral clock enable */

        __HAL_RCC_I2C1_CLK_ENABLE();

        /* USER CODE BEGIN I2C1_MspInit 1 */

           


        /* USER CODE END I2C1_MspInit 1 */

    }

}


修改后代码:


void HAL_I2C_MspInit(I2C_HandleTypeDef* i2cHandle)

{


    GPIO_InitTypeDef GPIO_InitStruct;

    if(i2cHandle->Instance == I2C1)

    {

        /* USER CODE BEGIN I2C1_MspInit 0 */


        /* USER CODE END I2C1_MspInit 0 */


        /**I2C1 GPIO Configuration

        PB6     ------> I2C1_SCL

        PB7     ------> I2C1_SDA

        */

                

        /* Peripheral clock enable */

        __HAL_RCC_I2C1_CLK_ENABLE();

        /* USER CODE BEGIN I2C1_MspInit 1 */

            

                GPIO_InitStruct.Pin = GPIO_PIN_6 | GPIO_PIN_7;

        GPIO_InitStruct.Mode = GPIO_MODE_AF_OD;

        GPIO_InitStruct.Speed = GPIO_SPEED_FREQ_HIGH;

        HAL_GPIO_Init(GPIOB, &GPIO_InitStruct);


        /* USER CODE END I2C1_MspInit 1 */

    }

}


推荐阅读

史海拾趣

中环(Central)公司的发展小趣事

中环公司的前身可以追溯到1958年成立的天津市半导体材料厂。随着技术的不断进步和市场需求的增长,公司在1978年开始涉足区熔单晶硅制造领域,并于1981年正式进入太阳能单晶硅制造领域,成为国内最早涉足光伏领域的企业之一。这一转变不仅体现了中环对市场趋势的敏锐洞察,也为其后续在光伏领域的发展奠定了坚实的基础。

Goodwork Semiconductor ( GW )公司的发展小趣事
可控硅稳压器能够快速响应电压变化,及时调整输出电压,保持电压稳定。
ES Systems公司的发展小趣事

随着公司业务的不断发展壮大,ES Systems开始实施国际化战略。公司先后在海外市场设立了研发中心和销售中心,积极拓展国际市场。通过引入国际先进的管理理念和技术经验,ES Systems不断提升自身的国际化水平。同时,公司还加强了与国际知名企业的合作与交流,共同推动电子行业的发展。

Harris公司的发展小趣事

进入20世纪30年代,Hammond迎来了其发展历程中的一个重要转折点。在1930年代初,Hammond成为加拿大第一家生产两柱式机架和窄柜系列产品的公司,这些产品迅速获得了广播和通讯行业的青睐。这一创举不仅巩固了Hammond在业内的地位,还为其后续在电气、电子行业的全面发展铺平了道路。

Elite Enterprises (H K) Co Ltd公司的发展小趣事

为了进一步提升公司的竞争力和市场份额,Elite Enterprises积极寻求与行业内外的合作伙伴建立战略合作关系。公司与多家知名企业签订了长期合作协议,共同开发新产品、拓展新市场。此外,公司还与一些高校和研究机构建立了产学研合作关系,共同推动LED技术的创新和应用。

EECO Switch公司的发展小趣事

在人机界面产品领域,开关是不可或缺的重要组件。EECO Switch公司凭借其卓越的研发实力,不断在开关技术上取得突破和创新。公司成功开发出了二进制编码的指轮开关、STRIPSWITCH®和微DIP®印刷电路板上安装的编码开关等多种产品,这些产品不仅具有高度的可靠性和稳定性,而且操作简便、功能丰富,满足了不同客户的需求。

问答坊 | AI 解惑

汽车ABS系统的使用维护1

汽车防抱死制动系统(ABS)是在常规制动装置的基础上研究发展起来的一种机电一体化的新型制动系统,其结构、使用、维护等都有其特点。虽然ABS系统的型号繁多,结构又比较复杂,但其使用维护大体相同。无论是使用维护哪种ABS系统,均应注意以下几个问 ...…

查看全部问答>

汽车手册(技术知识)

1.谈谈火花塞   一般用车者相信都会到维修站做一些基本的保养维修工作,如换机油、火花塞等,但阁下是否认识到这些简单的东西,如果选择得宜的话,对爱车的保护及性能,将有很大的功用。 火花塞 汽车改装的基本动作,是从引擎的点火系 ...…

查看全部问答>

单片机应用系统设计技术

单片机应用系统设计技术…

查看全部问答>

关于综合中出现latch的问题

在综合中,发现状态机里综合出了latch,是因为FSM里面有段组合逻辑的always块里 有一句A_state=A_state,但是设计里好像又必须保存状态。这样就会综合出latch。请问大家这个latch怎么处理?是一定不能出现latch么? 还是怎么进行latch的时序检查? ...…

查看全部问答>

PIC单片机初学者需要学习掌握的要点:

一,熟练PIC每个指令的使用方法。PIC16F877仅35个指令易学易用。可以用最简单的程序来试验这些指令。二,熟悉PIC内部功能模块的结构与作用。建意对每个模块都亲手做一下最简实验。三,拿一个现成的且程序量较大的程序,花时间去搞懂它然后,修改这 ...…

查看全部问答>

用过IR公司驱动芯片的请进!急需帮忙。IR2118工作不了。。

IR2118外围电路也很简单呀,电源地之间有个电容,VB和VS之间有个自举电容,VCC和VB之间有个二极管。 不管输入信号时低电平还是12V的高电平,输出HO和VS都是一样的电平?为什么呀?怎么做实验都这样。而且VS的电平不同芯片实验结果还不一样,有的是 ...…

查看全部问答>

计算机集成和扩展的思考

随着技术的发展,芯片的集成度必然会越来越高,应用领域的延伸会越来越广,现在我们眼中的高端应用也会越来越普及。 曾几何时,个人电脑的普及让人多么欢欣鼓舞,电脑机箱内部的扩展槽,超频,DIY配置都为厂商带来了商机。第一代享受个人电脑的人 ...…

查看全部问答>

flash不能进行写操作

真是问题重重啊,解决完一个问题,又冒出了一个, 现在串口所接收的数据不能写到flash里去。 就算直接通过PC对flash进行写操作也不行:删除flash中的一个文件时,会提示磁盘已满对话框,关掉这个对话框才会删除掉相应的文件。往flash里复制一个 ...…

查看全部问答>

AMI编码及Chipscope详细操作

哈哈  又来发表了,欢迎大家给些学习的意见!~这个文档通过AMI编码来详细介绍了Chipscope的详细操作,我用的软件是ISE11.1开发板是nexys 2…

查看全部问答>

FPGA芯片请大家推荐

1. 要求:     内核和IO电压都是3.3V ; 或者内核电压2.5V     QFP封装, 可利用IO 超过100PIN  …

查看全部问答>