用寄存器,配置和常规配置。
void IO8_Init(void)//初始化 用A0-A7
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA, ENABLE);//
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_1|GPIO_Pin_2 | GPIO_Pin_3| GPIO_Pin_4 | GPIO_Pin_5|GPIO_Pin_6 | GPIO_Pin_7;;//LED0 ? LED1 ?? IO ?
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN;//
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;//100MHz
GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;//
GPIO_Init(GPIOA, &GPIO_InitStructure);//GPIO
}
换个寄存器,
写1直接 GPIOx_BRR= xx
写0直接 GPIOx_BSRR = xx
int main(void)
{
u8 KeyVal=0;
u8 temp0=0;
u32 intnum=0;
float a=123.456;
int i=0;
unsigned char inputvalue=0;
delay_init(168);
//LED_Init();
//BEEP_Init();//初始化
uart_init(115200);
printf("hello world\r\n");
delay_ms(1000);
delay_ms(1000);
USART_SendData(USART1, 0xAA); //向串口1发送数据 readtemp[0]
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
USART_SendData(USART1, 0xBB); //向串口1发送数据 readtemp[0]
while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
delay_ms(1000);
delay_ms(1000);
// KeyModeFlag=0
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_0);
IO8_Init();
while(1)
{
inputvalue = GPIOA->IDR; //读取数据
printf("inputv = %x \r\n",inputvalue);
delay_ms(10);
}
}