完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
|
本帖最后由 hyg_shen_hua 于 2015-9-16 13:34 编辑
程序很简单,就是先初始化GPIO,然后模式设置,结果程序就卡在while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY));一直不出来。麻烦大家帮我分析一下! #include <STM32f4xx.h> static void IIC1_GPIO_Configuration(void) { GPIO_InitTypeDef GPIO_InitStructure; //打开B口的时钟,PB6->SCL,PB7->SDA RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOB,ENABLE); //先将对应寄存器配置为缺省值 GPIO_StructInit(&GPIO_InitStructure); //选中6,7管脚 GPIO_InitStructure.GPIO_Pin=GPIO_Pin_6|GPIO_Pin_7; //复用功能 GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF; //IIC最大速度为400K GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz; //开漏输出 GPIO_InitStructure.GPIO_OType=GPIO_OType_OD; //不带上拉 GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL; //将IO配置应用于对应寄存器 GPIO_Init(GPIOB,&GPIO_InitStructure); //管脚映射 GPIO_PinAFConfig(GPIOB,GPIO_Pin_6,GPIO_AF_I2C1); GPIO_PinAFConfig(GPIOB,GPIO_Pin_7,GPIO_AF_I2C1); } static void IIC1_MODE_Configuration(void) { I2C_InitTypeDef I2C_InitStrycture; //打开IIC1时钟 RCC_APB1PeriphClockCmd(RCC_APB1Periph_I2C1,ENABLE); //典型IIC速度为100K I2C_InitStrycture.I2C_ClockSpeed=100000; //IIC模式 I2C_InitStrycture.I2C_Mode=I2C_Mode_I2C; // I2C_InitStrycture.I2C_DutyCycle=I2C_DutyCycle_2; //在STM32作为从机时的应答地址,做主机时不需理会 I2C_InitStrycture.I2C_OwnAddress1=0x00; //使能IIC应答 I2C_InitStrycture.I2C_Ack=I2C_Ack_Enable; //应答地址为7位(从机) I2C_InitStrycture.I2C_AcknowledgedAddress=I2C_AcknowledgedAddress_7bit; //使能IIC I2C_Cmd(I2C1,ENABLE); //配置寄存器 I2C_Init(I2C1,&I2C_InitStrycture); //允许一字节一应答的时序 I2C_AcknowledgeConfig(I2C1, ENABLE); } void IIC1_Init(void) { IIC1_GPIO_Configuration(); IIC1_MODE_Configuration(); } 主程序很简单(串口程序就不贴出来了) USART1_Init(); IIC1_Init(); printf("rn 开始测试 nr"); while(I2C_GetFlagStatus(I2C1,I2C_FLAG_BUSY)); printf("写入数据nr"); 就这么简短的几句话,卡在那里了。配置检查了很久都没有看出问题来! |
|
|
相关推荐
|
|
|
IIC太渣了,STM32的
|
|
|
|
|
|
|
|
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
2961 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
2463 浏览 1 评论
stm32用fsmc读取ad7606采集数据,数据不变,只有开发版复位才更新数据
2331 浏览 0 评论
2455 浏览 1 评论
1674 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-3 14:13 , Processed in 0.489229 second(s), Total 39, Slave 31 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖