一、Seg
①小数的显示 ②高位熄灭
bit Seg_Mode=0;//0-噪音界面 1-参数界面
unsigned char DianYa;
unsigned int Noise;
unsigned char FenBei=65;
①噪音(AD读取电压转化为噪音
关于0-255->0-5,然后保留一位小数,两个方法都可以:
1.在底层里*10/51
194*10/51=38 38*18=684(直接显示684,串口发送时684/10.0=68.4,满足%.1f
1.高位熄灭:
保留一位小数,所以是到最后一位之前的那一位熄灭。然后只有一位的话就用三目操作符。
684嘛那和他比较那个就60*10,684/10.0不对
2.底层不做修改,直接/51.0
194/51.0=3.8039 3.8039*18.0=68.4702(直接用显示小数的方法显示,串口发送时直接用%.1f
②参数界面(自己设置
二、Key
bit Seg_Mode=0;//0-噪音界面 1-参数界面
unsigned char FenBei=65;
三、串口
unsigned char Uart_Slow_Down;//串口减速专用变量
unsigned char Uart_Recv[10];//串口接收数据储存数组 默认10个字节 若接收数据较长 可更改最大字节数
unsigned char Uart_Recv_Index;//串口接收数组指针
float Noise_1;
unsigned int Noise;
串口的bug:
在串口处理,进入判断的时候直接判断字符“Return”(如果题目没说判断\r\n的话)(然后判断index的个数是接收数组Recv的个数Index的个数+1)
然后在发的时候,不勾那个发送的勾勾
在中断服务函数里,index要+2,算上\r\n!!
四、Led
unsigned int Noise;
unsigned char FenBei=65;
float Noise;
unsigned char FenBei=65;
unsigned int Noise;
unsigned char FenBei=65;
以上几种都可以
单纯/10的话会有精度丢失,那比你大0.几也是大,然后就会报错
然后就: