智能車小白學習日記


前言

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


提示:下面開始第一階段的開發日記,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);
    }
  }
}

總結

因爲期末考試的原因,第一階段工作量少,主要任務爲環境配置及GPIO模塊的部分學習,其中.h文件爲函數等變量的申明,.c文件爲方法的具體實現,本次只截取部分代碼,其中的底層初始化配置尤其重要,留待下一階段學習。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章