关于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 21:02 编辑
你好像应该在初始化配置中修改为内部晶振功能。让LSE 失能。
本帖最后由 toofree 于 2018-1-31 00:55 编辑
首先要禁掉PC5的LSE输入
禁掉PC5的SPI功能、禁掉PC5的USART1功能
禁掉PC5的TIM2功能
上面全做完后,设置PC5为输入模式。
toofree 发表于 2018-1-31 00:42
首先要禁掉PC5的LSE输入
以上几步都做了后,如果还不行,请在RM0031文档中搜索LSE和OSC32相关内容,查看详情。 toofree 发表于 2018-1-31 00:58
以上几步都做了后,如果还不行,请在RM0031文档中搜索LSE和OSC32相关内容,查看详情。 ...
谢谢!回复!问题已解决! 谢谢回复!问题已解决!用第一种和第二种方法都可以!
第一种方式:输入浮空
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功能改动了!
谢谢!
wenyangzeng 发表于 2018-1-30 20:56
你好像应该在初始化配置中修改为内部晶振功能。让LSE 失能。
谢谢回复!问题已经解决!
页:
[1]