历史上的今天
今天是: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 */
}
}
史海拾趣
|
汽车防抱死制动系统(ABS)是在常规制动装置的基础上研究发展起来的一种机电一体化的新型制动系统,其结构、使用、维护等都有其特点。虽然ABS系统的型号繁多,结构又比较复杂,但其使用维护大体相同。无论是使用维护哪种ABS系统,均应注意以下几个问 ...… 查看全部问答> |
|
1.谈谈火花塞 一般用车者相信都会到维修站做一些基本的保养维修工作,如换机油、火花塞等,但阁下是否认识到这些简单的东西,如果选择得宜的话,对爱车的保护及性能,将有很大的功用。 火花塞 汽车改装的基本动作,是从引擎的点火系 ...… 查看全部问答> |
|
在综合中,发现状态机里综合出了latch,是因为FSM里面有段组合逻辑的always块里 有一句A_state=A_state,但是设计里好像又必须保存状态。这样就会综合出latch。请问大家这个latch怎么处理?是一定不能出现latch么? 还是怎么进行latch的时序检查? ...… 查看全部问答> |
|
一,熟练PIC每个指令的使用方法。PIC16F877仅35个指令易学易用。可以用最简单的程序来试验这些指令。二,熟悉PIC内部功能模块的结构与作用。建意对每个模块都亲手做一下最简实验。三,拿一个现成的且程序量较大的程序,花时间去搞懂它然后,修改这 ...… 查看全部问答> |
|
用过IR公司驱动芯片的请进!急需帮忙。IR2118工作不了。。 IR2118外围电路也很简单呀,电源地之间有个电容,VB和VS之间有个自举电容,VCC和VB之间有个二极管。 不管输入信号时低电平还是12V的高电平,输出HO和VS都是一样的电平?为什么呀?怎么做实验都这样。而且VS的电平不同芯片实验结果还不一样,有的是 ...… 查看全部问答> |
|
随着技术的发展,芯片的集成度必然会越来越高,应用领域的延伸会越来越广,现在我们眼中的高端应用也会越来越普及。 曾几何时,个人电脑的普及让人多么欢欣鼓舞,电脑机箱内部的扩展槽,超频,DIY配置都为厂商带来了商机。第一代享受个人电脑的人 ...… 查看全部问答> |
|
真是问题重重啊,解决完一个问题,又冒出了一个, 现在串口所接收的数据不能写到flash里去。 就算直接通过PC对flash进行写操作也不行:删除flash中的一个文件时,会提示磁盘已满对话框,关掉这个对话框才会删除掉相应的文件。往flash里复制一个 ...… 查看全部问答> |
|
哈哈 又来发表了,欢迎大家给些学习的意见!~这个文档通过AMI编码来详细介绍了Chipscope的详细操作,我用的软件是ISE11.1开发板是nexys 2… 查看全部问答> |




