打印
[活动专区]

【Autochips评测】+ 2、搭建开发环境并点亮LED灯

[复制链接]
698|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
tlled|  楼主 | 2021-1-12 17:07 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
   
     下面搭建开发环境,创建工程文件,并驱动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上,可以正常驱动。
    手册上的资料:
   
    修改的程序地方
   

    四、程序执行

   

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

129

主题

698

帖子

6

粉丝