• 基础实验一GPIO(流水灯)


    硬件连接比较简单,只需将Nu-Link和M0转换板对应接口(VCC DAT CLK RST GND)用杜邦线连接,再连接PC-USB端口即可。平台搭建也跳过,直接上图;

    just  code  it :

    [cpp]  view plain copy
    1. /* 
    2.  ------------------------------------------------------------ 
    3.  *作    者:小AX 
    4.  *功 能 描 述:通过软件延时函数实现LED灯实现顺流逆流等变化效果. 
    5.  ------------------------------------------------------------ 
    6.  */  
    7. #include "SmartM_M0.h"  
    8.   
    9. /**************************************** 
    10. *函数名称:main 
    11. *输    入:无 
    12. *输    出:无 
    13. *功    能:函数主体 
    14. ******************************************/  
    15.   
    16. INT32 main(VOID)  
    17. {  
    18.      UINT32 i;  
    19.      UINT32 rand();  
    20.      PROTECT_REG  
    21.      (  
    22.          PWRCON |= XTL12M_EN;  
    23.          //默认时钟源为外部晶振,PWRCON为系统掉电控制寄存器  
    24.          while((CLKSTATUS & XTL12M_STB) == 0);  
    25.          //等待12MHz时钟稳定(CLKSTATUS时钟状态监控寄存器)        
    26.          CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M;    
    27.          //设置外部晶振为系统时钟(CLKSEL0 时钟源选择控制寄存器0)  
    28.            
    29.          P2_PMD=0x5555;                             //GPIO设置为输出模式  
    30.      )  
    31.   
    32.      while(1)  
    33.      {    
    34.          for(i=0; i<8; i++)  
    35.            {  
    36.                P2_DOUT = ~(1UL<<i);                  //移位操作,顺流  
    37.   
    38.                Delayms(100);  
    39.                                                    //延时100ms  
    40.            }  
    41.                                                   
    42.           for(i=1; i<8; i++)  
    43.            {  
    44.                P2_DOUT = ~(128UL>>i);            //移位操作,逆流  
    45.   
    46.                Delayms(100);  
    47.                                                    //延时100ms  
    48.            }    
    49.                 
    50.           for(i=0;i<4;i++)  
    51.            {  
    52.                P2_DOUT = ~((8UL>>i)|(16UL<<i));    //移位操作,中间望向两端跑  
    53.   
    54.                Delayms(100);  
    55.                                                    //延时100ms  
    56.            }    
    57.   
    58.           for(i=0;i<4;i++)  
    59.            {  
    60.                P2_DOUT = ~((64UL>>i)|(2UL<<i));    //移位操作,两端向中间跑  
    61.   
    62.                Delayms(100);  
    63.                                                    //延时100ms  
    64.            }     
    65.                  
    66.                P2_DOUT=0xff;  
    67.                Delayms(1000);                      //全体灭灯  
    68.                                                    //延时1000ms  
    69.               
    70.           for(i=0; i<24; i++)  
    71.            {  
    72.                P2_DOUT = rand();                   //移位操作,随机闪烁  
    73.   
    74.                Delayms(100);                         
    75.            }                                       //延时100ms  
    76.               
    77.      }  
    78. }  


     

     
  • 相关阅读:
    线性表
    数据结构绪论
    warning: in-class initialization of non-static data member is a C++11 extension [-Wc++11-extensions]
    struct和typedef struct在c++中的用法
    struct和typedef struct在c语言中的用法
    GCC命令
    python list排序的两种方法及实例讲解
    Python随机数与随机字符串详解
    python处理Excel
    python3使用PyMysql连接mysql数据库
  • 原文地址:https://www.cnblogs.com/fengyv/p/2592742.html
Copyright © 2020-2023  润新知