12.20总结
2015-12-22 08:43
399 查看
Stm32的串口中断,我一直以为发送和接受都差不多,其实发送比接受的中断烦多了。发送有发送中断和发送完成中断。其实这么说吧,我从以前到现在就没用过发生中断和发送完中断,但我以为我用了。发送中断是指有个寄存器里面为空就触发,发送完中断也是有个寄存器为空,同时还有个寄存器又没值才产生。像以前我发送字符串的时候,我都不开发送中断和发送完中断的,其实不开也没关系。接受中断就是单片机没接受到一个字节的数据,就产生接受中断。这个中断我倒是经常用。
这周我要编写一个关于尺寸的传感器,里面需要用到很多固定的常数,于是我想到了使用宏,这样的话以后修改这些常数的时候比较方便。于是我就使用switch语句,然后在里面再大量使用宏,结果我编了好几百行。突然我就发现这样好烦啊。能不能有简便的方法呢?于是我想到了结构,一开始我的想法很天真,我定义一个结构体里面包含所有常数数据,然后我传递进来名称,根据不同的名称调用不同的常数数据,后来我一想,错了,我把结构体当成数组了。我想的是把变量名传过来,然后 结构.变量名 这么来调用,我想多了,这是不行的。没见过传变量名的。
结构体调用什么数据是在编译的时候就决定了的,只有数组才能在运行的时候根据传递不同的序号调用不同的常数值。这次我学到的就是我把结构和数组给弄混了。按照使用数组这个思路我又重写了代码,再配合枚举,只用了一百行代码就完成了。
所以我认为当需要用到很多常数的时候,有两种方法,一个是使用宏,一个是使用const数组,它们都能完成相同的任务。
这周我还测试了bootloader,人家写的bootloader有用,就是基于YMODEM协议,我也改了很多,本来我想基于这个代码,自己写一个的,但上司他说会发给我一个,让我基于那个来改,我就。。。。
我还看了一点C#方面的,感觉看的挺慢的,什么接口,类定义,集合,比较。反正概念挺多的。
这周我要编写一个关于尺寸的传感器,里面需要用到很多固定的常数,于是我想到了使用宏,这样的话以后修改这些常数的时候比较方便。于是我就使用switch语句,然后在里面再大量使用宏,结果我编了好几百行。突然我就发现这样好烦啊。能不能有简便的方法呢?于是我想到了结构,一开始我的想法很天真,我定义一个结构体里面包含所有常数数据,然后我传递进来名称,根据不同的名称调用不同的常数数据,后来我一想,错了,我把结构体当成数组了。我想的是把变量名传过来,然后 结构.变量名 这么来调用,我想多了,这是不行的。没见过传变量名的。
结构体调用什么数据是在编译的时候就决定了的,只有数组才能在运行的时候根据传递不同的序号调用不同的常数值。这次我学到的就是我把结构和数组给弄混了。按照使用数组这个思路我又重写了代码,再配合枚举,只用了一百行代码就完成了。
所以我认为当需要用到很多常数的时候,有两种方法,一个是使用宏,一个是使用const数组,它们都能完成相同的任务。
这周我还测试了bootloader,人家写的bootloader有用,就是基于YMODEM协议,我也改了很多,本来我想基于这个代码,自己写一个的,但上司他说会发给我一个,让我基于那个来改,我就。。。。
我还看了一点C#方面的,感觉看的挺慢的,什么接口,类定义,集合,比较。反正概念挺多的。
相关文章推荐
- 图论中树的基本概念总结
- ORA-25153: 临时表空间为空
- 在KVM中运行windows 10虚机(by quqi99)
- requirejs的简要用法
- 显示的MySQL 的select操作记录,general log
- 完美解决layDate强制动态显示当前时间(不求评论,但求疯狂转载!)
- 2016太原网络营销师郭文军揭秘SEM竞价中关键词分类?
- ThinkPHP--网站基本信息的设置F方法版
- 编程的智慧
- 英文单词升序排序
- hadoop学习;自己定义Input/OutputFormat;类引用mapreduce.mapper;三种模式
- git 忽略文件
- .net中的泛型
- 项目中常用文件的用途及注意项
- split()函数
- linux系统常用命令有哪些? semicolon命令的使用方法
- genstrings使用 -- ShinePug
- graphana从2.5开始也可以支持ES了
- Leetcode: Meeting Rooms
- 安卓日记——简述SimpleAdapter用法