智能车小白学习日记


前言

随着智能计算机行业的不断发展,众多领域都离不开“智能”两个字,对于在校大学生来说,智能车竞赛是含金量较高的比赛之一,其吸引众多爱好者投身其中,在十五届智能车比赛中盲目挣扎数月,卡在摄像头问题上,不觉十六届核心板霸主地位已然易主,从恩智浦转向沁恒,从一个小白转向下一个小白,好在与上一年瞎猫似乱摸较好的是,这次似乎有着靠谱学长的帮助。


提示:下面开始第一阶段的开发日记,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文件为方法的具体实现,本次只截取部分代码,其中的底层初始化配置尤其重要,留待下一阶段学习。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章