硬件连接比较简单,只需将Nu-Link和M0转换板对应接口(VCC DAT CLK RST GND)用杜邦线连接,再连接PC-USB端口即可。平台搭建也跳过,直接上图;
just code it :
- /*
- ------------------------------------------------------------
- *作 者:小AX
- *功 能 描 述:通过软件延时函数实现LED灯实现顺流逆流等变化效果.
- ------------------------------------------------------------
- */
- #include "SmartM_M0.h"
- /****************************************
- *函数名称:main
- *输 入:无
- *输 出:无
- *功 能:函数主体
- ******************************************/
- INT32 main(VOID)
- {
- UINT32 i;
- UINT32 rand();
- PROTECT_REG
- (
- PWRCON |= XTL12M_EN;
- //默认时钟源为外部晶振,PWRCON为系统掉电控制寄存器
- while((CLKSTATUS & XTL12M_STB) == 0);
- //等待12MHz时钟稳定(CLKSTATUS时钟状态监控寄存器)
- CLKSEL0 = (CLKSEL0 & (~HCLK)) | HCLK_12M;
- //设置外部晶振为系统时钟(CLKSEL0 时钟源选择控制寄存器0)
- P2_PMD=0x5555; //GPIO设置为输出模式
- )
- while(1)
- {
- for(i=0; i<8; i++)
- {
- P2_DOUT = ~(1UL<<i); //移位操作,顺流
- Delayms(100);
- //延时100ms
- }
- for(i=1; i<8; i++)
- {
- P2_DOUT = ~(128UL>>i); //移位操作,逆流
- Delayms(100);
- //延时100ms
- }
- for(i=0;i<4;i++)
- {
- P2_DOUT = ~((8UL>>i)|(16UL<<i)); //移位操作,中间望向两端跑
- Delayms(100);
- //延时100ms
- }
- for(i=0;i<4;i++)
- {
- P2_DOUT = ~((64UL>>i)|(2UL<<i)); //移位操作,两端向中间跑
- Delayms(100);
- //延时100ms
- }
- P2_DOUT=0xff;
- Delayms(1000); //全体灭灯
- //延时1000ms
- for(i=0; i<24; i++)
- {
- P2_DOUT = rand(); //移位操作,随机闪烁
- Delayms(100);
- } //延时100ms
- }
- }