版主
注册时间:2021-3-11
在线时间:9 小时
|
发表于 2018-5-4 20:58:08
|
显示全部楼层
本帖最后由 bsm56321 于 2018-5-4 21:07 编辑
蓝牙今天焊上了,在测试,用了2个不同的NTC,一个5%精度,一个1%精度,温度有稍微偏差APP用最文编译,代码如下
事件 BLE蓝牙1.通道数据改变(服务UUID 为 文本型,通道UUID 为 文本型,数据 为 字节型())
变量 aa 为 文本型
变量 bb 为 文本型
变量 cc 为 文本型
变量 成员数 为 整数型
变量 NTC1 为 文本型
变量 NTC2 为 文本型
变量 放电电流 为 文本型
变量 充电电流 为 文本型
变量 输入内容 为 文本型
变量 ID 为 整数型
成员数=取文本长度(字节集到十六进制(数据))
变量 a 为 文本型
变量 b 为 文本型
变量 c 为 文本型
编辑框4.加入文本(字节集到十六进制(数据))
如果 成员数 >= 6 则
b=取文本中间( 字节集到十六进制(数据),0,6 )
结束 如果
如果 成员数 >=8 则
c=取文本中间( 字节集到十六进制(数据),6,2 )
结束 如果
如果 b="55AAEE" 则
如果 c="88" 则
NTC1= 四舍五入( 到十进制( 取文本中间( 字节集到十六进制(数据),8,2 ))-(到十进制( 取文本中间( 字节集到十六进制(数据),10,2 ))/到十进制( 取文本中间( 字节集到十六进制(数据),12,2 )))-40,3)
标签1.标题=" NTC1温度:" & NTC1
否则如果 c="77" 则
NTC2=四舍五入( 到十进制( 取文本中间( 字节集到十六进制(数据),8,2 ))-(到十进制( 取文本中间( 字节集到十六进制(数据),10,2 ))/到十进制( 取文本中间( 字节集到十六进制(数据),12,2 )))-40,3)
标签2.标题=" NTC1温度:" & NTC2
否则如果 c="66" 则
放电电流=取文本中间( 字节集到十六进制(数据),8,4 )
否则如果 c="55" 则
充电电流=取文本中间( 字节集到十六进制(数据),8,4 )
结束 如果
结束 如果
结束 事件
//*****************************************************************************/
if(a>=1&&b==0)
{
ntc1=1,ntc2=0; f_out=1;c_out=1; //打开NTC1串联电阻电源,
ADC_CONTR=0x86;NOP();NOP(); //打开P1.6 ADC通道
if(a>=100&&b==0)
{
for(j=0,i=0;i<16;i++)
{
adc();j+=adc0; //16次累加
}
wd0=j>>4;ntc1=0; b=1; //取出16次平均值
if(wd0<=5){wd0=0;}else {wd0=wd0-5;} //把ADC底值清除掉
tmp=2480*wd0/4096; //临时参数
for(j=0,i=0;i<160;i++)
{
if((tmp)>ntctab){j=i; i=161;k=ntctab[(j-1)]- ntctab[j];z=(ntctab[(j-1)]- tmp); }//运算温度数
}
Uart3Send(0x55);Uart3Send(0xAA);Uart3Send(0xEE);Uart3Send(0x88);Uart3Send(j);Uart3Send(z); Uart3Send(k); //发送NTC1温度数据到蓝牙
UartSend(0x88);UartSend(j);UartSend(z); UartSend(k);
}
}
if(a>=750&&b==1)
{ ntc1=0,ntc2=1; f_out=1;c_out=1; //打开NTC2串联电阻电源,
ADC_CONTR=0x84;NOP();NOP();adc(); //打开充放管,打开P1.4 ADC通道
if(a>=850&&b==1)
{
for(j=0,i=0;i<16;i++)
{
adc();j+=adc0; //16次累加
}
wd0=j>>4; ntc2=0;b=2; //取出16次平均值
if(wd0<=5){wd0=0;}else {wd0=wd0-5;} //把ADC底值清除掉
tmp=2480*wd0/4096; //临时参数
for(j=0,i=0;i<160;i++)
{
if((tmp)>ntctab){j=i; i=161;k=ntctab[(j-1)]- ntctab[j];z=(ntctab[(j-1)]- tmp); } //运算温度数
}
Uart3Send(0x55);Uart3Send(0xAA);Uart3Send(0xEE); Uart3Send(0x77);Uart3Send(j);Uart3Send(z); Uart3Send(k);//发送NTC2温度数据到蓝牙
}
}
if(a>=1500)a=0,b=0;
|
|