亮剑2015 发表于 2015-3-7 09:34:54

STM32自学历程

学习STM32才刚刚几天时间,我发现她的库文件中用到结构体的地方很多,而且很有技巧。记得我第一次接触结构体是把浮点数存入EEPROM中时,在网上看到了这种结构,当时只是有一个了解,只知道怎么用,在M3的库中,我深刻的体会到了他的强大。
不过这么强大的库也给我很不舒服的感觉,总有一种“我就是这么规定的,你必须这么认为”的强迫感,可能是不习惯吧,所以我要加大代码量,从最基础的学起。
昨天网上写了好多呢,结果无线网卡连接不上,存U盘了,结果U盘出意外了,嗨,就这些吧,上代码,虽然很基础,但是我也不能放过。
我用的是小苗LED流水灯的模板,然后自己有所改动。
LED.H中照了野火的例程
#define ON0
#define OFF 1
//带参宏,可以像内联函数一样使用
#define LED1(a) if (a) \
   GPIO_SetBits(GPIOC,GPIO_Pin_0);\
   else\
   GPIO_ResetBits(GPIOC,GPIO_Pin_0)
这里只是一个例子,我想请问下没有定义a,怎么没有报错呢。
main.c自己写了下流水灯的过程,能比较方便的更改流水灯的组合样式
while(1)
{
u8 i;
for(i=0;i<8;i++)
{
    switch(i)//更改LED的状态和i的数量可以组合出任意变化的流水灯
   {
   case 0:{LED1(OFF);LED2(OFF);LED3(OFF);LED4(OFF);}break;
   case 1:{LED1(ON );LED2(OFF);LED3(OFF);LED4(OFF);}break;
   case 2:{LED1(ON );LED2(ON );LED3(OFF);LED4(OFF);}break;
   case 3:{LED1(ON );LED2(ON );LED3(ON );LED4(OFF);}break;
   case 4:{LED1(ON );LED2(ON );LED3(ON );LED4(ON );}break;
   case 5:{LED1(OFF);LED2(ON );LED3(ON );LED4(ON );}break;
   case 6:{LED1(OFF);LED2(OFF);LED3(ON );LED4(ON );}break;
   case 7:{LED1(OFF);LED2(OFF);LED3(OFF);LED4(ON );}break;
   }
   Delay();//流水灯亮、灭的时间间隔
}
}
延时我没有改,大家可以自己写成带有参数的,就可以随意的更改闪烁频率了

MouseCat 发表于 2015-3-7 10:36:58

跑马灯简单,但却是好东西。

wambob 发表于 2015-3-7 10:57:33

最基础的实验,貌似单片机都是从点亮小灯和流水灯,跑马灯开始的 ,容易而且能体验成功,如果以开始就学复杂,很容易打击积极兴。简单的写多了,熟练了,再学习复杂的,就相对简单了

_ilikerome_ 发表于 2015-3-7 11:05:08

支持一下,顶

123tango 发表于 2015-3-7 11:55:41

支持一下

zhangdaijin 发表于 2015-3-7 12:52:26

顶一下楼主

zfz0122 发表于 2015-3-8 20:21:10

谢谢分享

aoxiangwode2008 发表于 2015-3-9 15:05:04

能用各种方式把流水灯跑明白也是高手了。

可曾上了爱情 发表于 2015-3-9 15:25:26

顶一下楼主

可曾上了爱情 发表于 2015-3-9 15:25:42

顶一下楼主
页: [1] 2
查看完整版本: STM32自学历程