完善资料让更多小伙伴认识你,还能领取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的
|
|
|
|
|
|
使用stm32l451片子,对ad7606进行3通道100k采样值跳动问题?
1060 浏览 1 评论
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1541 浏览 2 评论
1852 浏览 3 评论
1447 浏览 0 评论
嵌入式开发 Win11安装ST-Link 提示 设备描述符请求失败 怎么处理?
1584 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-25 23:20 , Processed in 0.485654 second(s), Total 41, Slave 33 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191