前言
隨着智能計算機行業的不斷髮展,衆多領域都離不開“智能”兩個字,對於在校大學生來說,智能車競賽是含金量較高的比賽之一,其吸引衆多愛好者投身其中,在十五屆智能車比賽中盲目掙扎數月,卡在攝像頭問題上,不覺十六屆核心板霸主地位已然易主,從恩智浦轉向沁恆,從一個小白轉向下一個小白,好在與上一年瞎貓似亂摸較好的是,這次似乎有着靠譜學長的幫助。
提示:下面開始第一階段的開發日記,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);
}
}
}