基于正点原子的开发板平台,测试输入和输出,熟悉嵌入式的基本的IO控制,附带程序源码,本程序的开发基于标准库,亲测有效,通过开发板上的4个按钮(KEY_UP、KEY0、KEY1和KEY2,来控制板上的LED和蜂鸣器,通过不同的输出来控制不同的输出,具体实现为按WKUP 按钮控制蜂鸣器,按KEY2按钮控制绿灯,按KEY1按钮控制绿灯,按KEY0按钮,红灯绿灯以1秒交替周期闪烁,蜂鸣器以1秒周期通断。
单片机源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "led.h"
- #include "beep.h"
- #include "key.h"
-
- int main(void)
- {
- u8 key;
- Stm32_Clock_Init(336,8,2,7);//设置时钟,168Mhz
- delay_init(168); //延时初始化
- LED_Init(); //初始化与LED连接的硬件接口
- BEEP_Init(); //初始化蜂鸣器IO
- KEY_Init(); //初始化与按键连接的硬件接口
- LED0=0; //先点亮红灯
- while(1)
- {
- key=KEY_Scan(0); //得到键值
- if(key)
- {
- switch(key)
- {
- case WKUP_PRES: //控制蜂鸣器
- BEEP=!BEEP;
- break;
- case KEY2_PRES: //控制LED0翻转
- LED0=!LED0;
- break;
- case KEY1_PRES: //控制LED1翻转
- LED1=!LED1;
- break;
- case KEY0_PRES: //同时控制LED0,LED1翻转
- // LED0=!LED0;
- // LED1=!LED1;
-
- while(1)
- {
- // HAL_GPIO_TogglePin(GPIOF,GPIO_PIN_8);
- // HAL_Delay(500);
- //
- LED0=0;
- LED1=1;
- BEEP=0;
- delay_ms(1000);
- LED0=1;
- LED1=0;
- BEEP=1;
- delay_ms(1000);
- LED0=0;
- LED1=0;
- BEEP=0;
- delay_ms(1000);
- LED0=1;
- LED1=1;
- BEEP=1;
- delay_ms(1000);
- }
-
- break;
-
-
- }
- }else delay_ms(10);
- }
- }
复制代码
所有资料51hei提供下载:
InputOutputtest.7z
(94.33 KB, 下载次数: 10)
|