开发板是正点原子的F407,天真的我以为买了板子,看视频就一定能会。但是发现并不是那么回事。
要自己读代码!要自己读代码!要自己读代码!
刚一看代码还以为这不是C语言呢!真的以为自己学的是假的C语言? C语言不就是“Hello World”吗?这怎么一大堆没见过的东西。类型不就是int, char吗? 这怎么还有GPIO_TypeDef,这都是啥。后来发现C语言还是C语言,是我自己蠢,压根就没学好C语言。
首先发现的问题是结构体的使用,在此之前基本没怎么用过结构体,但是在STM32中发现到处都是结构体,店家给的资料感觉讲的并不详细(或许因为他们认为这个层次的人应该能很熟练的使用C了,但没想到还有我这种Low货)。后来在一本Arduino的教程上看到了比较清晰简洁的对于Struct的介绍。
因为Arduino的大多数应用都是与传感器打交道,所以用传感器的例子来举例会比较形象:假设要跟踪一个室内温度传感器和一个户外温度传感器的数据,一天内要多次读取。如果使用变量处理,就要为每次读取的每个温度值都创建单独的变量:
int morningIndoorTemp;
int morningOutdoorTemp;
int noonIndorTemp;
int noonOutdoorTemp;
要想取得的采样值越多,就要定义越多的变量,可以预见,所需要变量的数目很快就会失控。使用数组的话,存储时比较方便,但是提取的时候很麻烦。结构体允许我们自己定义数据类型,将相关元素组织在一个独立的对象中。访问结构体内部数据时,直接使用变量名,这样可以清楚的显示每个数值的意义。
之前的列子用结构体就可以用如下方式定义:
struct sensorinfo{
char date[9];
int indoortemp;
int outdoortemp;
};
因为STM32比51复杂的多了,IO口之类的有更多的设置,所以变量名要起的有意义,变量之间要有组织。
。。。。。。。。词穷了
本来应该有更多的内容,但是不知道该说啥,下一篇继续努力。