新版与老版存在温度模块的问题
只要在原来的onewire.c里面的Read_DS18B20函数里面加一个延时3us函数就行了(4us会出现温度跳变的情况 3us是最好的)(5us也可以 如果出现温度跳变 可以找这方面原因)
超声波模块新板与老版区别
老版是12us。
新板是14us。(这个时间根据板子来定,有的是13us最好)
第十三届(第二场)
1.DA输出值有问题
20cm以内可以正常输出1V,80cm以外可以正常输出5V 但是20cm以内跟80cm以外的电压测不出来
第十二届(第二场)
第九届
PWM调节进行分级,只要除不尽都会出现闪烁的情况,不清楚为什么
if(++Led_Count == 13) Led_Count = 0;//Led一个显示周期为12毫秒
这样不行
下面这种可以
if(++Led_Count == 12) Led_Count = 0;
14届模拟题1
问题EEPROM出现了保存了无法显示的问题
经过分析是因为保存的变量跟显示的变量不一样 ,变量确实是保存了;但是显示的确实另外一个变量
第十一届(第一场)
1.浮点数加减出现问题(板子问题)
思路
浮点数可以比较大小,如果是<,>,可以直接写成if (a > b) ,但如果要比较=,!= ,就需要考虑精度问题。
正常的思路,我们比较两个数大小是将两个数做差,与0比较,看是否等于0,因为浮点数在计算机里面表示问题(二进制无法精确表示一些浮点数),所以这里要改成两个数的差是否在一定精度范围内。
#define EPS 1e-6
if(((a - b > - EPS) && ((a - b) < EPS)))
14届模拟题1
1.按键按下后,数码管显示数据乱减。(板子问题)
2.【Keil】用Keil编译程序时出现 error C249: ‘DATA‘: SEGMENT TOO LARGE报错解决方案
解决方法
3.定义关于串口的变量时,容量一定要足够大,不然可能会出现串口乱输出的情况。(重点)
unsigned int Wave;//超声波距离存储数据
unsigned int Wave_Set = 30;//超声波距离设置存储数组
超声波变量定义时用char,串口会出现乱发送的情况,改成int后,错误修复。
14届模拟题2
1.加上串口后出现数码管熄灭的情况
2.串口发送数据接收不到,发现是串口减速的问题,把他删掉即可。