gdgn526345 发表于 2018-1-30 18:37:30

关于STM8L051F3P6 PC5 PC6用做普通IO输入口,一直为低电平!

关于STM8L051F3P6   PC5 PC6用做普通IO输入口,一直为低电平的问题:
STM8L051F3P6   PC5,用作普通IO输入口,当输入为高时,PC5一直为低!

PC5已配置为输入方式(无论是浮空还是设置内部上拉,效果都一样),见原理图,我人为使光耦的第4脚为高电平。
只要一接上PC5 ,光耦第4脚的电平立马被拉低!

以下是软件:

#define LOGIC_IO_INPUT_PORT GPIOC
#define LOGIC_IO_INPUT_PINS GPIO_Pin_5

第一种方式:输入浮空
GPIO_Init(LOGIC_IO_INPUT_PORT,LOGIC_IO_INPUT_PINS,GPIO_Mode_In_FL_No_IT);//初始化LOGIC_IO_INPUT_PORT端口   

第二种方式:输入内部上拉
GPIO_Init(LOGIC_IO_INPUT_PORT,LOGIC_IO_INPUT_PINS,GPIO_Mode_In_PU_No_IT);//初始化LOGIC_IO_INPUT_PORT端口   

第三种方式:同时禁止USRAT时钟和USART功能
   CLK_PeripheralClockConfig(CLK_Peripheral_USART1, DISABLE);
   USART_Cmd(USART1,DISABLE);   
   GPIO_Init(LOGIC_IO_INPUT_PORT,LOGIC_IO_INPUT_PINS,GPIO_Mode_In_PU_No_IT);//初始化LOGIC_IO_INPUT_PORT端口

三种配置方式得到的效果都一样!PC5高不起来!一直为低!请问还有哪些地方 需要配置的吗?谢谢!

wenyangzeng 发表于 2018-1-30 20:56:50

本帖最后由 wenyangzeng 于 2018-1-30 21:02 编辑

你好像应该在初始化配置中修改为内部晶振功能。让LSE 失能。

toofree 发表于 2018-1-31 00:42:05

本帖最后由 toofree 于 2018-1-31 00:55 编辑

首先要禁掉PC5的LSE输入


禁掉PC5的SPI功能、禁掉PC5的USART1功能


禁掉PC5的TIM2功能


上面全做完后,设置PC5为输入模式。

toofree 发表于 2018-1-31 00:58:12

toofree 发表于 2018-1-31 00:42
首先要禁掉PC5的LSE输入



以上几步都做了后,如果还不行,请在RM0031文档中搜索LSE和OSC32相关内容,查看详情。

gdgn526345 发表于 2018-1-31 09:02:49

toofree 发表于 2018-1-31 00:58
以上几步都做了后,如果还不行,请在RM0031文档中搜索LSE和OSC32相关内容,查看详情。 ...
谢谢!回复!问题已解决!

gdgn526345 发表于 2018-1-31 09:06:25

谢谢回复!问题已解决!用第一种和第二种方法都可以!
第一种方式:输入浮空
GPIO_Init(LOGIC_IO_INPUT_PORT,LOGIC_IO_INPUT_PINS,GPIO_Mode_In_FL_No_IT);//初始化LOGIC_IO_INPUT_PORT端口   

第二种方式:输入内部上拉
GPIO_Init(LOGIC_IO_INPUT_PORT,LOGIC_IO_INPUT_PINS,GPIO_Mode_In_PU_No_IT);//初始化LOGIC_IO_INPUT_PORT端口   

问题出在我后面的应用软件!后面的软件有一个宏定义的配置“碰到”了PC5,把PC5的IO功能改动了!
谢谢!

gdgn526345 发表于 2018-1-31 09:10:10

wenyangzeng 发表于 2018-1-30 20:56
你好像应该在初始化配置中修改为内部晶振功能。让LSE 失能。

谢谢回复!问题已经解决!
页: [1]
查看完整版本: 关于STM8L051F3P6 PC5 PC6用做普通IO输入口,一直为低电平!