您好!
我添加了有关上一个问题的完整代码。
我们创建了一个用于读取温度和 GSR 的电路。 我们在使用 NFC 读取器和移动应用时遇到了一些问题。
NFC 读取器未读取我们的电路。
我们根据 您的 RF430FRL152H GUI 界面在 Matlab 编写了源代码、但无法正常工作。 这是我们的代码。
请找出代码问题。
全部清除;%清除工作区
全部关闭;%关闭所有打开的窗口
CLC;%清除命令窗口
%重置串行端口
INSTRESET
删除(instrfindall)
Command1 ='0108000304FF0000';%TRF7970AEVM
Command2 ='0109000304F0000000';
命令3 ='0109000304F1FF0000';
命令4 ='010C00030410002101020000';%Register 写入请求。
皮肤电导率和温度感应的百分比
命令5 ='011300030418022102001011000000FFFF0000';%block 2过采样率128
命令8 ='0113000304180221000601020101400000';%block 0 % ADC1、ADC2 on,频率:每秒两次,通过次数:2 (用于无限采样),使用热敏电阻(P33~P37)
命令9 ='010B000304180220090000';%采样所有传感器请求模式。[采样数据]
%%端口连接
%set 参数
S =串行('COM6');
SET (s、'budrate'、9600、'DABits (数据位)'、8、 '位'、1、'奇偶校验'、'无');
%Communication 开始
fopen (s);
%从输入缓冲区中删除数据
有刷输入;
%%命令
fwrite(s)、command1;
s=fgetl (s);%响应
% disp (S);
fwrite(s)、command2;
s=fgetl (s);%响应
s=fgetl (s);%响应
% disp (S);
fwrite(s)、command3;
s=fgetl (s);%响应
% disp (S);
fwrite(s)、command4;
s=fgetl (s);%响应
% disp (S);
fwrite(s)、command5;
s=fgetl (s);%响应
s=fgetl (s);%响应
s=fgetl (s);%响应
% disp (S);
fwrite(s)、command8;
s=fgetl (s);%响应
s=fgetl (s);%响应
% disp (S);
C=1;% while 循环计数
while (1)
fwrite(s)、command9;
s=fgetl;
s=fgetl;%响应:传感器数据
ADC0=[0 0 0];
如果 i=4:11 %十六进制
开关 S (I)
案例"A"
ADC0 (I)=10;
案例"B"
ADC0 (I)=11;
案例"C"
ADC0 (I)=12;
外壳"D"
ADC0 (I)=13;
案例"E"
ADC0 (I)=14;
案例"F"
ADC0 (I)=15;
否则
ADC0 (I)=str2double (S (I));
结束
结束
ADC0V=((ADC0 (6)*(16^3))+(ADC0 (7)*(16^2))+(ADC0 (4)*(16^1))+(ADC0 (5)* 0.9)/((2^14)-1);温度数据百分比
ADC0V2=((ADC0 (10)*(16^3))+(ADC0 (11)*(16^2))+(ADC0 (8)*(16^1))+(ADC0 (9)* 0.9)/((2^14)-1);光数据百分比
%温度
TempConv (c)=(ADC0V/0.2795)*100000;
temp_in_C (c)=(((log10 (TempConv (c)/100000.0)/log10 (2.718))/4330.0)+(1.0 /298.15)))-273.15;
file_h = fopen ('Temp_c.txt'、'w');
fprintf (file_h、'%.4F\n'、Temp_in_C);
fclose (file_h);
%光
LED (c)= ADC0V2;
file_h = fopen ('LED_data.txt'、'w');
fprintf (file_h、'%.4F\n'、LED);
fclose (file_h);
图(1);
图(Temp_in_C、'r-*');
txt =['温度:' num2str (Temp_in_C (c))'°C'];
文本(0、50、txt)
图例('Temp');
YLIM ([20 40])
抽取;
图(2);
图(LED、'r--*');
图例('LED');
抽取;
有刷输入;
C=c+1;
结束
LED2 =转置(LED);
fclose(s);
删除;
删除(instrfindall)