金牌会员
 
- 积分
- 1238
- 金钱
- 1238
- 注册时间
- 2013-1-9
- 在线时间
- 121 小时
|
1金钱
程序开始就关闭了JTAG,然后把PA15脚做输出的时候正常,做输入的时候读出的值不对,不知道什么原因?这个口只能用做输出吗?
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE); //开启AFIO时钟
GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); //关闭JTAG口,使PB3,PB4,PA15这几个IO作为普通IO使用
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
GPIOStru.GPIO_Mode = GPIO_Mode_Out_PP; //定义PA15为推挽输出。
GPIOStru.GPIO_Speed = GPIO_Speed_50MHz;
GPIOStru.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOA,&GPIOStru);
GPIO_SetBits(GPIOA,GPIO_Pin_15); //这里PA15控制一个LED,关闭LED都正常。
GPIO_ResetBits(GPIOA,GPIO_Pin_15);
GPIOStru.GPIO_Mode = GPIO_Mode_IPD; //定义PA15为下拉输入。
GPIOStru.GPIO_Speed = GPIO_Speed_50MHz;
GPIOStru.GPIO_Pin = GPIO_Pin_15;
GPIO_Init(GPIOA,&GPIOStru);
b = GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_15);
不管PA15接高电平还是低电平,读出的结果都是0x01.
|
|