本帖最后由 tony0708 于 2012-3-27 20:11 编辑
初学M0,刚开始有点无头绪,没有学习的方向。后来逛了论坛,然后看了一些新唐的官方资料,终于有点眉目了。 “[入门教程] 【菜农助学活动】资料汇总与更新”这篇帖子中很多资料都非常的实用,因为本论坛帖子的地址不固定的,所以我就不上连接啦。
先从LED的操作开始学。我的程序,参考了上面帖子中“NUC工程模板”,这样入门方便了很多。
在这个程序中,实现的,是板子上4个流水灯的滚动显示。从左到右,一次亮一个。#include <stdio.h>
#include "DrvGPIO.h"
#include "DrvSYS.h"
#include "NUC1xx.h"
void delay(uint32_t i)
{
uint32_t j;
while(i--)
{
for(j=0;j<1000;j++);
}
}
int main ()
{
uint32_t count=0;
UNLOCKREG();
SYSCLK->WRCON.XTL12M_EN=1;
LOCKREG();
DrvGPIO_Open(E_GPA,2, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,3, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,4, E_IO_OUTPUT);
DrvGPIO_Open(E_GPA,5, E_IO_OUTPUT);
while(1)
{
count=(count+1)%8;
delay(200);
switch(count)
{
case 0: DrvGPIO_ClrBit(E_GPA,2); break;
case 1: DrvGPIO_SetBit(E_GPA,2); break;
case 2: DrvGPIO_ClrBit(E_GPA,3); break;
case 3: DrvGPIO_SetBit(E_GPA,3); break;
case 4: DrvGPIO_ClrBit(E_GPA,4); break;
case 5: DrvGPIO_SetBit(E_GPA,4); break;
case 6: DrvGPIO_ClrBit(E_GPA,5); break;
case 7: DrvGPIO_SetBit(E_GPA,5); break;
default: break;
}
}
}
|