前言
随着智能计算机行业的不断发展,众多领域都离不开“智能”两个字,对于在校大学生来说,智能车竞赛是含金量较高的比赛之一,其吸引众多爱好者投身其中,在十五届智能车比赛中盲目挣扎数月,卡在摄像头问题上,不觉十六届核心板霸主地位已然易主,从恩智浦转向沁恒,从一个小白转向下一个小白,好在与上一年瞎猫似乱摸较好的是,这次似乎有着靠谱学长的帮助。
提示:下面开始第一阶段的开发日记,GPIO模块的学习
一、GPIO是什么?
单片机输入输出口。
二、使用步骤
1.点灯示例:
代码如下(点灯):
int main(void)
{
u8 i=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
printf("GPIO Toggle TEST\r\n");
GPIO_Toggle_INIT();
while(1)
{
Delay_Ms(250);
GPIO_WriteBit(GPIOA, GPIO_Pin_0, i==0);
}
}
2.小灯循环亮灭
int main(void)
{
u8 i=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
printf("GPIO Toggle TEST\r\n");
GPIO_Toggle_INIT();
while(1)
{
Delay_Ms(250);
GPIO_WriteBit(GPIOA, GPIO_Pin_0, (i==0) ? (i=Bit_SET):(i=Bit_RESET));
}
}
依照电路原理图给小灯对应引脚写高低电平,保证电路通断,小灯亮灭。
3.按键通断示例:
int main(void)
{
u8 i=0;
NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);
Delay_Init();
USART_Printf_Init(115200);
printf("SystemClk:%d\r\n",SystemCoreClock);
printf("GPIO Toggle TEST\r\n");
GPIO_Toggle_INIT();
GPIO_WriteBit(GPIOB, GPIO_Pin_8, 1);
GPIO_WriteBit(GPIOB, GPIO_Pin_9, 1);
while(1)
{
if(!KEY1){
// Delay_Ms(250);
GPIO_WriteBit(GPIOB, GPIO_Pin_8, 0);
GPIO_WriteBit(GPIOB, GPIO_Pin_9, 0);
Delay_Ms(1000);
GPIO_WriteBit(GPIOB, GPIO_Pin_8, 1);
GPIO_WriteBit(GPIOB, GPIO_Pin_9, 1);
}
}
}