stm8l GPIO C0 上拉不起作用?

[复制链接]
6031|14
 楼主| sioca 发表于 2012-4-23 23:26 | 显示全部楼层 |阅读模式
用STM8L的两个GPIO口 PC0 PD7控制一个射频开关 TX RX,GPIO没有用外部上拉电阻,想通过内部上拉电阻控制射频开关两个输入口的高和低,结果发现PD7是可以的,PC0在输出高的时候只有300多mV,导致电路工作异常,两个口驱动能力是一样的,难道PC0口没有上拉电阻??为了防止其他GPIOC口消耗过多电流导致PC0驱动能力不够,特地将其他口都设成HIGHZ
程序如下:

  CLK_SYSCLKSourceConfig(CLK_SYSCLKSource_HSI);
  CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1);
  while (CLK_GetSYSCLKSource() != CLK_SYSCLKSource_HSI)
  // 程序刚启动
  {
  
GPIO_DeInit(GPIOC);

GPIO_Init(GPIOC, GPIO_Pin_0, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_1, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_2, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_3, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_4, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_5, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_6, GPIO_Mode_Out_OD_HiZ_Fast);

GPIO_Init(GPIOC, GPIO_Pin_7, GPIO_Mode_Out_OD_HiZ_Fast);



GPIO_Init(GPIOC, GPIO_Pin_0, GPIO_Mode_Out_PP_High_Fast);

GPIO_Init(GPIOD, GPIO_Pin_7, GPIO_Mode_Out_PP_High_Fast);

while(1){
           GPIO_WriteBit(GPIOC,GPIO_Pin_0,SET)// 这里就不正常,300mV

   GPIO_WriteBit(GPIOC,GPIO_Pin_0,RESET)
           GPIO_WriteBit(GPIOD,GPIO_Pin_7,SET)// 这里是正常的, 3.3V
           GPIO_WriteBit(GPIOD,GPIO_Pin_7,RESET)

         }   

香水城 发表于 2012-4-24 09:52 | 显示全部楼层
PC0口有没有上拉,可以看数据手册。

另外,问问题时要说明具体型号,别人想帮你时,至少有个方向。
 楼主| sioca 发表于 2012-4-24 10:17 | 显示全部楼层
啊,那坑爹了,数据手册上找了几遍没有找到
不好意思,能提示一下是在datasheet中还是 manual吗?
谢谢。
bili 发表于 2012-4-24 10:49 | 显示全部楼层
datasheet
香水城 发表于 2012-4-24 14:40 | 显示全部楼层
看手册要仔细:
STM8L101_PC0_TrueOD.GIF
gaochy1126 发表于 2012-4-24 15:07 | 显示全部楼层
得看看寄存器设置是否正确呢?上拉电阻就是防止引脚为空的和增强驱动的!
yilusuiyuan 发表于 2015-2-14 19:06 | 显示全部楼层
这个PC0和PC1 的驱动能力不够怎么处理呢?
Cheas_Tong 发表于 2015-11-27 16:54 | 显示全部楼层
从引脚描述表格上来看PC0 和PC1是没有内部上拉的,程序 上打开内部上拉是不起作用的,硬件上本身就没有上拉电阻。感觉香主 解答问题有点不耐烦。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

122

主题

419

帖子

1

粉丝
快速回复 在线客服 返回列表 返回顶部