[活动专区] 【Autochips评测】+ 2、搭建开发环境并点亮LED灯

[复制链接]
877|0
 楼主| tlled 发表于 2021-1-12 17:07 | 显示全部楼层 |阅读模式
   
     下面搭建开发环境,创建工程文件,并驱动LED指示灯

    一、搭建环境

    我使用的KEIL开发环境,从官网下载pack包文件。
    地址:http://www.autochips.com/jk/MCU1 ... =531&typeid=225
    002.png
    下载完成后安装。

    二、创建工程文件

    pack包安装完成后,开始创建工程文件。

    2.1、选择芯片型号
    003.png

    2.2、添加组件
    004.png
    005.png

    2.3、创建的项目文件
    006.png

    2.4、增加main.c文件
    007.png

    2.5、对环境进行设置
    008.png
    009.png

    2.6、选择编译器
    010.png
    011.png
    012.png

    2.7、编译工程
    013.png

    通过上面的步骤,创建项目的工程文件。

    三、程序

    创建好工程文件后,下面增加用户代码。我是要驱动板卡上面的三个LED灯,先来看下硬件图。

    3.1、LED硬件电路图
    三个LED灯连接PC3,PC4和PC5端口。
    100.png
    101.png

    3.2、驱动代码

    led.c
  1. #include "ac78xx_gpio.h"
  2. #include "led.h"
  3. #include "gpio.h"


  4. void Init_Led(void)
  5. {
  6.         GPIO_SetDir(LED1_PIN, GPIO_OUTPUT);
  7.         GPIO_SetDir(LED2_PIN, GPIO_OUTPUT);//ÉèÖÃLEDÒý½ÅΪÊä³ö
  8.         GPIO_SetDir(LED3_PIN, GPIO_OUTPUT);
  9.        
  10.         GPIO_SetFunc(37, 0);
  11.         GPIO_SetFunc(36, 0);
  12.         GPIO_SetFunc(35, 0);

  13.         LED1_ON;
  14.         LED2_ON;
  15.         LED3_ON;
  16. }
  17. void  test(void)
  18. {
  19.         uint32_t i;
  20.         LED1_ON;
  21.         LED2_OFF;
  22.         LED3_OFF;
  23.         for(i=0;i<0x1fffff;i++);
  24.         LED1_OFF;
  25.         LED2_ON;
  26.         LED3_OFF;
  27.         for(i=0;i<0x1fffff;i++);
  28.         LED1_OFF;
  29.         LED2_OFF;
  30.         LED3_ON;
  31.         for(i=0;i<0x1fffff;i++);
  32.         LED1_OFF;
  33.         LED2_OFF;
  34.         LED3_OFF;
  35.         for(i=0;i<0x1fffff;i++);
  36.        
  37. }

    led.h
  1. #ifndef LED_H_
  2. #define LED_H_


  3. #define LED1_PIN                                        (GPIO_PC3)
  4. #define LED2_PIN                                        (GPIO_PC4)
  5. #define LED3_PIN                                        (GPIO_PC5)
  6.        
  7. #define LED1                                                (GPIOC_OUT(3))
  8. #define LED2                                                (GPIOC_OUT(4))
  9. #define LED3                                                (GPIOC_OUT(5))
  10.        
  11. #define LED1_ON                                                do{LED1 = 1;}while(0)
  12. #define LED1_OFF                                        do{LED1 = 0;}while(0)
  13. #define LED1_TOGGLE                                do{LED1 = !LED1;}while(0)

  14. #define LED2_ON                                                do{LED2 = 1;}while(0)
  15. #define LED2_OFF                                        do{LED2 = 0;}while(0)
  16. #define LED2_TOGGLE                                do{LED2 = !LED2;}while(0)
  17.        
  18. #define LED3_ON                                                do{LED3 = 1;}while(0)
  19. #define LED3_OFF                                        do{LED3 = 0;}while(0)
  20. #define LED3_TOGGLE                                do{LED3 = !LED3;}while(0)

  21. void Init_Led(void);
  22. void        test(void);

  23. #endif

    main.c

  1. #include "led.h"



  2. int main(void)
  3. {
  4.        
  5.         Init_Led();
  6.        
  7.         while(1)
  8.         {
  9.                 test();
  10.         }
  11. }
   
    3.3、驱动说明
    这个三个LED灯是通过三极管驱动的,刚开始按照默认端口为GPIO口调试,LED驱动不起来,通过手册将这三个口切换到功能0上,可以正常驱动。
    手册上的资料:
    102.png
    修改的程序地方
    103.png

    四、程序执行

    200.gif
您需要登录后才可以回帖 登录 | 注册

本版积分规则

132

主题

701

帖子

7

粉丝
快速回复 在线客服 返回列表 返回顶部