?? mytest.asv
字號:
%此函數為使用者編寫。
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 + -