下面搭建开发环境,创建工程文件,并驱动LED指示灯
一、搭建环境
我使用的KEIL开发环境,从官网下载pack包文件。
地址:http://www.autochips.com/jk/MCU1 ... =531&typeid=225
下载完成后安装。
二、创建工程文件
pack包安装完成后,开始创建工程文件。
2.1、选择芯片型号
2.2、添加组件
2.3、创建的项目文件
2.4、增加main.c文件
2.5、对环境进行设置
2.6、选择编译器
2.7、编译工程
通过上面的步骤,创建项目的工程文件。
三、程序
创建好工程文件后,下面增加用户代码。我是要驱动板卡上面的三个LED灯,先来看下硬件图。
3.1、LED硬件电路图
三个LED灯连接PC3,PC4和PC5端口。
3.2、驱动代码
led.c
- #include "ac78xx_gpio.h"
- #include "led.h"
- #include "gpio.h"
- void Init_Led(void)
- {
- GPIO_SetDir(LED1_PIN, GPIO_OUTPUT);
- GPIO_SetDir(LED2_PIN, GPIO_OUTPUT);//ÉèÖÃLEDÒý½ÅΪÊä³ö
- GPIO_SetDir(LED3_PIN, GPIO_OUTPUT);
-
- GPIO_SetFunc(37, 0);
- GPIO_SetFunc(36, 0);
- GPIO_SetFunc(35, 0);
- LED1_ON;
- LED2_ON;
- LED3_ON;
- }
- void test(void)
- {
- uint32_t i;
- LED1_ON;
- LED2_OFF;
- LED3_OFF;
- for(i=0;i<0x1fffff;i++);
- LED1_OFF;
- LED2_ON;
- LED3_OFF;
- for(i=0;i<0x1fffff;i++);
- LED1_OFF;
- LED2_OFF;
- LED3_ON;
- for(i=0;i<0x1fffff;i++);
- LED1_OFF;
- LED2_OFF;
- LED3_OFF;
- for(i=0;i<0x1fffff;i++);
-
- }
led.h- #ifndef LED_H_
- #define LED_H_
- #define LED1_PIN (GPIO_PC3)
- #define LED2_PIN (GPIO_PC4)
- #define LED3_PIN (GPIO_PC5)
-
- #define LED1 (GPIOC_OUT(3))
- #define LED2 (GPIOC_OUT(4))
- #define LED3 (GPIOC_OUT(5))
-
- #define LED1_ON do{LED1 = 1;}while(0)
- #define LED1_OFF do{LED1 = 0;}while(0)
- #define LED1_TOGGLE do{LED1 = !LED1;}while(0)
- #define LED2_ON do{LED2 = 1;}while(0)
- #define LED2_OFF do{LED2 = 0;}while(0)
- #define LED2_TOGGLE do{LED2 = !LED2;}while(0)
-
- #define LED3_ON do{LED3 = 1;}while(0)
- #define LED3_OFF do{LED3 = 0;}while(0)
- #define LED3_TOGGLE do{LED3 = !LED3;}while(0)
- void Init_Led(void);
- void test(void);
- #endif
main.c
- #include "led.h"
- int main(void)
- {
-
- Init_Led();
-
- while(1)
- {
- test();
- }
- }
3.3、驱动说明
这个三个LED灯是通过三极管驱动的,刚开始按照默认端口为GPIO口调试,LED驱动不起来,通过手册将这三个口切换到功能0上,可以正常驱动。
手册上的资料:
修改的程序地方
四、程序执行
|