12.20总结

来源:互联网 发布:linux开机引导修复 编辑:程序博客网 时间:2024/05/18 01:01
   

     Stm32的串口中断,我一直以为发送和接受都差不多,其实发送比接受的中断烦多了。发送有发送中断和发送完成中断。其实这么说吧,我从以前到现在就没用过发生中断和发送完中断,但我以为我用了。发送中断是指有个寄存器里面为空就触发,发送完中断也是有个寄存器为空,同时还有个寄存器又没值才产生。像以前我发送字符串的时候,我都不开发送中断和发送完中断的,其实不开也没关系。接受中断就是单片机没接受到一个字节的数据,就产生接受中断。这个中断我倒是经常用。

      这周我要编写一个关于尺寸的传感器,里面需要用到很多固定的常数,于是我想到了使用宏,这样的话以后修改这些常数的时候比较方便。于是我就使用switch语句,然后在里面再大量使用宏,结果我编了好几百行。突然我就发现这样好烦啊。能不能有简便的方法呢?于是我想到了结构,一开始我的想法很天真,我定义一个结构体里面包含所有常数数据,然后我传递进来名称,根据不同的名称调用不同的常数数据,后来我一想,错了,我把结构体当成数组了。我想的是把变量名传过来,然后 结构.变量名 这么来调用,我想多了,这是不行的。没见过传变量名的。

结构体调用什么数据是在编译的时候就决定了的,只有数组才能在运行的时候根据传递不同的序号调用不同的常数值。这次我学到的就是我把结构和数组给弄混了。按照使用数组这个思路我又重写了代码,再配合枚举,只用了一百行代码就完成了。

      所以我认为当需要用到很多常数的时候,有两种方法,一个是使用宏,一个是使用const数组,它们都能完成相同的任务。

      这周我还测试了bootloader,人家写的bootloader有用,就是基于YMODEM协议,我也改了很多,本来我想基于这个代码,自己写一个的,但上司他说会发给我一个,让我基于那个来改,我就。。。。

      我还看了一点C#方面的,感觉看的挺慢的,什么接口,类定义,集合,比较。反正概念挺多的。

0 0
原创粉丝点击