📄 mytest.m
字号:
%此函数为使用者编写。
function mytest(temp)
% 1、连接DA的OUT1和AD的CH1。
% 2、temp发送什么数据,matlab的命令窗口就返回读入的数据。
% temp的范围是0-1010。(1011-1023的数据将会达到DA输出的极限,建议不用。)
global fids
fids=serial('com1','baudrate',4800,'parity','none','databits',8,'stopbits',1);%设置串口
fopen(fids);%打开串口
Send_Data(temp,1); %发送数据temp给OUT1通道。
data = Read_Data(1); %读取CH1通道的数据。
%data1=Send_Read(temp);
%IO_out(tempIO,0); %输出tempIO电平给通道PB0。
%level = IO_in(4) %读入PB4的电平。
fclose(fids);%关闭串口
delete(fids);%清除句柄。
clear fids;
display(data);%在命令窗口显示读入的指令。
%display(data1);
%———以下函数不要轻易改动———————————————————————————
function Send_Data(temp,channel)
%函数名称:function Send_Data(temp,channel)
%入口参数:temp为输入数据,10位精度。channel为通道选择。
%出口参数:无
%函数功能:发送指定电压到DA。
global fids
%十进制85就是十六进制55H.
%十进制16就是十六进制10H.数据
tempH=fix(temp/256);%将一个10进制数转化成两个字节。
tempL=mod(temp,256);
fwrite(fids,[85 16 channel tempH tempL],'uchar');
%--------------------------------------------------------------------------
function data = Read_Data(channel)
%函数名称:function data=Read_Data(channel)
%入口参数:channel为通道选择
%出口参数:data为接收到的数据。10位精度。
%函数功能:读取指定通道的数据。
global fids
fwrite(fids,[85 01 channel 00 00],'uchar');
tm= fread(fids,2,'uchar');
data = tm(1)*256+tm(2);%将两个字节转化为10进制数据。
%--------------------------------------------------------------------------
function level = IO_in(channel)
% 函数名称:level = function IO_in(channel)
%入口参数:channel为通道选择。
%出口参数:电平level。Level为0时代表低电平。Level为1时代表高电平。
%函数功能:读入指定IO口的电平。
global fids
fwrite(fids,[85 02 channel 00 00],'uchar');
level = fread(fids,1,'uchar');
%--------------------------------------------------------------------------
function IO_out(temp,channel)
% 函数名称:function IO_out(temp,channel)
% 入口参数:temp为输入数据,高电平发1,低电平发0。channel为通道选择。
% 出口参数:无
% 函数功能:指定IO口的输出电平。
global fids
fwrite(fids,[85 03 channel temp 00],'uchar');
%--------------------------------------------------------------------------
function data=Send_Read(temp)
%入口参数:temp为需要发送给单片机的数据。
%出口参数:data为AD采集到的数据。
%函数功能:发送指定电压到DA,同时返回AD采集到的数据。
%注:设计此函数的目的是如果一个设计既要输出数据又要采集数据,此函数可以提高运行速率。此时通道是固定的。输出为通道1,输入也为通道1。
global fids
tempH=fix(temp/256);%将一个10进制数转化成两个字节。
tempL=mod(temp,256);
fwrite(fids,[85 17 01 tempH tempL],'uchar');
tm= fread(fids,2,'uchar');
data = tm(1)*256+tm(2);%将两个字节转化为10进制数据。
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -