?? mytest.m
字號(hào):
%此函數(shù)為使用者編寫。
function mytest(temp)
% 1、連接DA的OUT1和AD的CH1。
% 2、temp發(fā)送什么數(shù)據(jù),matlab的命令窗口就返回讀入的數(shù)據(jù)。
% temp的范圍是0-1010。(1011-1023的數(shù)據(jù)將會(huì)達(dá)到DA輸出的極限,建議不用。)
global fids
fids=serial('com1','baudrate',4800,'parity','none','databits',8,'stopbits',1);%設(shè)置串口
fopen(fids);%打開串口
Send_Data(temp,1); %發(fā)送數(shù)據(jù)temp給OUT1通道。
data = Read_Data(1); %讀取CH1通道的數(shù)據(jù)。
%data1=Send_Read(temp);
%IO_out(tempIO,0); %輸出tempIO電平給通道PB0。
%level = IO_in(4) %讀入PB4的電平。
fclose(fids);%關(guān)閉串口
delete(fids);%清除句柄。
clear fids;
display(data);%在命令窗口顯示讀入的指令。
%display(data1);
%———以下函數(shù)不要輕易改動(dòng)———————————————————————————
function Send_Data(temp,channel)
%函數(shù)名稱:function Send_Data(temp,channel)
%入口參數(shù):temp為輸入數(shù)據(jù),10位精度。channel為通道選擇。
%出口參數(shù):無(wú)
%函數(shù)功能:發(fā)送指定電壓到DA。
global fids
%十進(jìn)制85就是十六進(jìn)制55H.
%十進(jìn)制16就是十六進(jìn)制10H.數(shù)據(jù)
tempH=fix(temp/256);%將一個(gè)10進(jìn)制數(shù)轉(zhuǎn)化成兩個(gè)字節(jié)。
tempL=mod(temp,256);
fwrite(fids,[85 16 channel tempH tempL],'uchar');
%--------------------------------------------------------------------------
function data = Read_Data(channel)
%函數(shù)名稱:function data=Read_Data(channel)
%入口參數(shù):channel為通道選擇
%出口參數(shù):data為接收到的數(shù)據(jù)。10位精度。
%函數(shù)功能:讀取指定通道的數(shù)據(jù)。
global fids
fwrite(fids,[85 01 channel 00 00],'uchar');
tm= fread(fids,2,'uchar');
data = tm(1)*256+tm(2);%將兩個(gè)字節(jié)轉(zhuǎn)化為10進(jìn)制數(shù)據(jù)。
%--------------------------------------------------------------------------
function level = IO_in(channel)
% 函數(shù)名稱:level = function IO_in(channel)
%入口參數(shù):channel為通道選擇。
%出口參數(shù):電平level。Level為0時(shí)代表低電平。Level為1時(shí)代表高電平。
%函數(shù)功能:讀入指定IO口的電平。
global fids
fwrite(fids,[85 02 channel 00 00],'uchar');
level = fread(fids,1,'uchar');
%--------------------------------------------------------------------------
function IO_out(temp,channel)
% 函數(shù)名稱:function IO_out(temp,channel)
% 入口參數(shù):temp為輸入數(shù)據(jù),高電平發(fā)1,低電平發(fā)0。channel為通道選擇。
% 出口參數(shù):無(wú)
% 函數(shù)功能:指定IO口的輸出電平。
global fids
fwrite(fids,[85 03 channel temp 00],'uchar');
%--------------------------------------------------------------------------
function data=Send_Read(temp)
%入口參數(shù):temp為需要發(fā)送給單片機(jī)的數(shù)據(jù)。
%出口參數(shù):data為AD采集到的數(shù)據(jù)。
%函數(shù)功能:發(fā)送指定電壓到DA,同時(shí)返回AD采集到的數(shù)據(jù)。
%注:設(shè)計(jì)此函數(shù)的目的是如果一個(gè)設(shè)計(jì)既要輸出數(shù)據(jù)又要采集數(shù)據(jù),此函數(shù)可以提高運(yùn)行速率。此時(shí)通道是固定的。輸出為通道1,輸入也為通道1。
global fids
tempH=fix(temp/256);%將一個(gè)10進(jìn)制數(shù)轉(zhuǎn)化成兩個(gè)字節(jié)。
tempL=mod(temp,256);
fwrite(fids,[85 17 01 tempH tempL],'uchar');
tm= fread(fids,2,'uchar');
data = tm(1)*256+tm(2);%將兩個(gè)字節(jié)轉(zhuǎn)化為10進(jìn)制數(shù)據(jù)。
?? 快捷鍵說(shuō)明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號(hào)
Ctrl + =
減小字號(hào)
Ctrl + -