OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2492|回复: 2

STM32 IIC通信问题PC11和PC12IO口操作

[复制链接]

1

主题

2

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-3-25
在线时间
5 小时
发表于 2020-4-24 16:20:09 | 显示全部楼层 |阅读模式
我是STM32F103mini板子,用PC4和PC5能用 ,改到PC11和PC12就不行了,是咋回事。修改代码如下:
PC4和PC5设置:(此方法可行)
//IO方向设置
//#define FDC_SDA_IN()  {GPIOC->CRL&=0XFF0FFFFF;GPIOC->CRL|=8<<4*5;}
//#define FDC_SDA_OUT() {GPIOC->CRL&=0XFF0FFFFF;GPIOC->CRL|=3<<4*5;}

//IO操作函数         
//#define FDC_IIC_SCL    PCout(4)         //SCL
//#define FDC_IIC_SDA    PCout(5)   //输出SDA         
//#define FDC_READ_SDA   PCin(5)                 //输入SDA
//初始化IIC I/O口
//void FDC_IIC_Init(void)
//{                                             
// GPIO_InitTypeDef  GPIO_InitStructure;
//        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);//先使能外设IO PORTC时钟
//               
//  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4|GPIO_Pin_5;//端口配置
//  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;                 //推挽输出
//  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;                //IO口速度为50MHz
//  GPIO_Init(GPIOC, &GPIO_InitStructure);                                            //根据设定参数初始化GPIO
//       
// GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);                                  //PC.4,PC.5 输出高       
//}



PC12和PC11设置:(此方法不可行)
//IO方向设置
#define FDC_SDA_IN()  {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=8<<12;}
#define FDC_SDA_OUT() {GPIOC->CRH&=0XFFFF0FFF;GPIOC->CRH|=3<<12;}

//IO操作函数         
#define FDC_IIC_SCL    PCout(12) //SCL
#define FDC_IIC_SDA    PCout(11) //SDA         
#define FDC_READ_SDA   PCin(11)  //输入SDA



void FDC_IIC_Init(void)
{                                             
        GPIO_InitTypeDef GPIO_InitStructure;
        //RCC->APB2ENR|=1<<4;//先使能外设IO PORTC时钟
        RCC_APB2PeriphClockCmd(        RCC_APB2Periph_GPIOC, ENABLE );       
          
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_12|GPIO_Pin_11;
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP ;   //推挽输出
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
        GPIO_Init(GPIOC, &GPIO_InitStructure);

        GPIO_SetBits(GPIOC,GPIO_Pin_11|GPIO_Pin_12);                                  //PC.11,PC.12 输出高       
}




32新手  还请大家多多指教,谢谢!
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

31

主题

2183

帖子

0

精华

资深版主

Rank: 8Rank: 8

积分
14410
金钱
14410
注册时间
2018-8-3
在线时间
1156 小时
发表于 2020-4-24 18:43:17 | 显示全部楼层
建议你搞两个独立的IO哦 这两个io内部已经是连接的24C02 了
回复 支持 反对

使用道具 举报

1

主题

2

帖子

0

精华

新手入门

积分
18
金钱
18
注册时间
2020-3-25
在线时间
5 小时
 楼主| 发表于 2020-4-25 08:37:14 | 显示全部楼层
翼行园子 发表于 2020-4-24 18:43
建议你搞两个独立的IO哦 这两个io内部已经是连接的24C02 了

哦,好的 ,谢谢!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 05:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表