本帖最后由 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;
- }
- }
- }
|