【中科昊芯Start_DSC28027勇士开发板试用体验】点灯

描述

本文来源电子发烧友社区,作者:xiaopeng, 帖子地址:https://bbs.elecfans.com/jishu_2286214_1_1.html

按照国际惯例,拿到开发板先点灯,测试一下开发环境是否ok。

打开开发板例程,找到HX_DSC28027_GPIO例程:
开发板试用


导入到IDE中并编译,如下:
开发板试用


注意:debug之前需要配置开发板上的拨码开关,配置错误可能导致无法进行debug。我是都拨到OFF的位置,可以成功下载和debug。
拨码的作用是设置启动模式,详细如下:
开发板试用


该例程只涉及到两个文件,分别是main.c和led.c,如下:
main.c


  1. /******************************************************************
  2. 文 档 名 :HX_DSC28027_GPIO
  3. 开 发 环 境:Haawking IDE V1.8.2
  4. 开 发 板 :DSC28027勇士板
  5. D S P: DSC28027
  6. 使 用 库:无
  7. 作 用:GPIO输入输出例程
  8. 说 明:GPIO6控制D401闪灯,按下SW-SPST,GPIO7对应D400亮,弹起D400灭;D401一直闪烁;
  9. ----------------------例程使用说明-----------------------------
  10. *
  11. *            测试GPIO输入输出功能
  12. *
  13. *
  14. *
  15. *
  16. * 现象:GPIO6控制D401闪灯,按下SW-SPST,GPIO7对应D400亮,弹起D400灭;D401一直闪烁;
  17. *
  18. 版本:V0.0.3
  19. 时 间:2022年3月28日
  20. 作 者:heyang
  21. @ mail:yang.he@mail.haawking.com
  22. 修改人:何洋
  23.  
  24. ******************************************************************/
  25. #include "dsc_config.h"
  26. #include
  27. #include "IQmathLib.h"
  28.  
  29. extern void InitKEY(void);
  30. extern void InitLED(void);
  31.  
  32. int main(void)
  33. {
  34.         uint16_t cnt = 0;
  35.  
  36.         /*初始化系统控制:PLL,WatchDog,使能外设时钟*/
  37.         InitSysCtrl();
  38.         /*将PIE控制寄存器初始化为默认状态,该状态禁止所有PIE中断并清除所有标志*/
  39.         InitPieCtrl();
  40.         /*禁止CPU中断并清除所有中断标志*/
  41.         IER = 0x0000;
  42.         IFR = 0x0000;
  43.         /*初始化PIE向量表,为PIE向量表中的所有中断向量配置对应向量的入口地址*/
  44.         InitPieVectTable();
  45.         /*初始化KEY、LED*/
  46.         InitKEY();
  47.         InitLED();
  48.  
  49.         while(1)
  50.         {
  51.                 /*按键按下*/
  52.                 if(GpioDataRegs.GPADAT.bit.GPIO12 == 0)
  53.                 {
  54.                         /*D400亮*/
  55.                         GpioDataRegs.GPACLEAR.bit.GPIO7 = 1;
  56.                 }
  57.                 else
  58.                 {
  59.                         /*松开按键D400灭*/
  60.                         GpioDataRegs.GPASET.bit.GPIO7 = 1;
  61.                 }
  62.  
  63.                 if(cnt == 500)
  64.                 {
  65.                         cnt = 0;
  66.                         /*D401一直闪烁*/
  67.                         GpioDataRegs.GPATOGGLE.bit.GPIO6 = 1;
  68.                 }
  69.                 else
  70.                 {
  71.                         cnt++;
  72.                         DELAY_US(1000);
  73.                 }
  74.         }
  75.  
  76.         return 0;
  77. }
  78.  
  79. // ----------------------------------------------------------------------------
  80.  
复制代码

led.c


  1. #include "dsc_config.h"
  2.  
  3. /******************************************************************
  4. *函数名:void InitKEY()
  5. *参 数:无
  6. *返回值:无
  7. *作 用:初始化独立IO口按键 SW-SPST
  8. ******************************************************************/
  9. void InitKEY(void)
  10. {
  11.         /*允许访问受保护的空间*/
  12.         EALLOW;
  13.         /*将GPIO12配置为数字IO*/
  14.         GpioCtrlRegs.GPAMUX1.bit.GPIO12 = 0;
  15.         /* //使能GPIO12内部上拉*/
  16.         GpioCtrlRegs.GPAPUD.bit.GPIO12 = 1;
  17.         /*将GPIO12配置为输入*/
  18.         GpioCtrlRegs.GPADIR.bit.GPIO12 = 0;
  19.         /*禁止访问受保护的空间*/
  20.         EDIS;
  21. }
  22.  
  23. /******************************************************************
  24. *函数名:void InitLED()
  25. *参 数:无
  26. *返回值:无
  27. *作 用:初始化LED
  28. ******************************************************************/
  29. void InitLED(void)
  30. {
  31.         /*允许访问受保护的空间*/
  32.         EALLOW;
  33.         /*将GPIO16配置为数字IO*/
  34.         GpioCtrlRegs.GPAMUX1.bit.GPIO6 = 0;
  35.         /*将GPIO6配置为输出*/
  36.         GpioCtrlRegs.GPADIR.bit.GPIO6 = 1;
  37.         /*将GPIO7配置为数字IO*/
  38.         GpioCtrlRegs.GPAMUX1.bit.GPIO7 = 0;
  39.         /*将GPIO7配置为输出*/
  40.         GpioCtrlRegs.GPADIR.bit.GPIO7 = 1;
  41.         /*禁止访问受保护的空间*/
  42.         EDIS;
  43. }
  44.  
复制代码

 

打开APP阅读更多精彩内容
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉

全部0条评论

快来发表一下你的评论吧 !

×
20
完善资料,
赚取积分