各位大侠:
STM32F101R8T6MCU的PC7口用推挽输出只有2V(系统供电3.3V)?测试时已把PC7的外部电路全部去掉,就让PC7,输出一个方波。用示波器看,方波最高电压也是2V。
另我感到奇怪的是!与PC7同样的IO PC6却有3.3V的输出,请问这是什么问题。下面为我的程式配置:
GPIO_InitTypeDef GPIO_InitStructure; //定义IO配置参数变量
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC,ENABLE);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9; //定义PC.6 ~9 作为74HC138 A B OE线
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//IO频率设置
GPIO_InitStructure.GPIO_Mode =GPIO_Mode_Out_PP; //IO上拉功能设置推挽输出
GPIO_Init(GPIOC, &GPIO_InitStructure); //根据上面三行参数进行PC.6 ~9 进行设置
#define Row_A_LOW GPIO_ResetBits(GPIOC, GPIO_Pin_6) //A=0;
#define Row_A_HIGHT GPIO_SetBits(GPIOC, GPIO_Pin_6) //A=1;
#define Row_B_LOW GPIO_ResetBits(GPIOC, GPIO_Pin_7) //B=0;
#define Row_B_HIGHT GPIO_SetBits(GPIOC, GPIO_Pin_7) //B=1;
#define Row_C_LOW GPIO_ResetBits(GPIOC, GPIO_Pin_8) //C=0;
#define Row_C_HIGHT GPIO_SetBits(GPIOC, GPIO_Pin_8) //C=1;
#define Row_OE_LOW GPIO_ResetBits(GPIOC, GPIO_Pin_9) //OE=0;
#define Row_OE_HIGHT GPIO_SetBits(GPIOC, GPIO_Pin_9) //OE=1;
switch(dat_temp)
{
case 0 :
Row_A_LOW;
Row_B_LOW;
break;
case 1 :
Row_A_HIGHT;
Row_B_LOW;
break;
case 2 :
Row_A_LOW;
Row_B_HIGHT;
break;
case 3 :
Row_A_HIGHT;
Row_B_HIGHT;
break;
} |