i2c读写函数怎么写(I2C协议怎么写)

1.I2C协议怎么写

void delay_scl() { unsigned data i=10; do {_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); } while(--i); } void delay(unsigned char data k)//精确延时k*0.1us { unsigned char data i=250; do{do{_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}//执行一个nop为1个时钟周期 while(--i);} while(--k);//执行一个while为2个时钟周期 } void i2c_init() //I2C的初始化:SDA和SCL都为高电平 { sda=1; delay_scl(); scl=1; delay_scl(); } void i2c_start() //开始信号 { i2c_init(); sda=0; delay_scl(); } void i2c_stop() //停止信号 { sda=0; delay_scl(); scl=1; delay_scl(); sda=1; delay_scl(); } void i2c_response() //应答信号 { unsigned char xdata i; scl=1; delay_scl(); while((sda==1)&&(i<250))i++; scl=0; delay_scl(); } void i2cwrite_byte(unsigned char data dat) //写1个字节 {unsigned char xdata i,temp; temp=dat; for(i=0;i<8;i++) { temp=temp<<1; scl=0; delay_scl(); sda=CY; delay_scl(); scl=1; delay_scl(); } scl=0; delay_scl(); sda=1; delay_scl(); } unsigned char i2cread_byte() //读1个字节 { unsigned char xdata i,k; scl=0; delay_scl(); sda=1; delay_scl(); for(i=0;i<8;i++) { scl=1; delay_scl(); k=(k<<1)|sda; scl=0; delay_scl(); } return k; } void i2cwrite_add(unsigned char data address,unsigned char data dat) //写数据,1个字节地址位,1个字节数据 { i2c_start(); i2cwrite_byte(0xEE); // 16进制Oxa0转成8bit二进制数:前7位是设备号,末位"0"表示向设备写入。

i2c_response(); i2cwrite_byte(address); //写地址 i2c_response(); i2cwrite_byte(dat); //写数据 i2c_response(); i2c_stop(); delay(100); //收到stop命令后,需twr时间来写数据,此期间不接收任何信息 } unsigned char I2Cread_add(unsigned char data address) //读数据,1个字节地址位,函数返回数据值 { unsigned char xdata dat; i2c_start(); i2cwrite_byte(0xEE); //16进制Oxa0转成8bit二进制数:前7位是设备号,末位"0"表示向设备写入。 i2c_response(); i2cwrite_byte(address); //向设备写入需要查找的地址(移动设备内指针) i2c_response(); i2c_start(); //刷新,再次查找设备 i2cwrite_byte(0xEF); // 16进制Oxa0转成8bit二进制数:前7位是设备号,末位"1"表示从设备读取。

i2c_response(); dat=i2cread_byte(); //读取数据 i2c_stop(); //读完后主机返回"非应答"(高电平),并直接发出终止信号 delay(10); return dat; }。

2.I2C总线协议中的 应答函数,读写函数中,SDA和SCL到底该怎么判断

应答函数:

1. "ACK" is always to be responded by the i2c master or slaver which receving the current byte.

(1) current byte : slave address / word address / data

(2) ACK bit state : SCL drive by master

SDA drive by the i2c master or slaver which receving the current byte

(3) ACK : SDA=0 during SCL high cycle , No ACK : SDA=high-Z during SCL high cycle

2. Only need to repond the "No ACK" at last byte of read access by i2c master.

读写函数:

1. SCL always drive by master when either write access or read access

2. SDA drive by master when slave address , master wirte data byte (not include ACK bit)

SDA drive by slaver when master read/slaver write data byte (not include ACK bit)

3.c51单片机I2c总线的读写编程步骤

你说的是IO模拟i2c吧,这个你参考下#pragma ot(6,SIZE)#define ERRORCOUNT 10 enum eepromtype {M2401,M2402,M2404,M2408,M2416,M2432,M2464,M24128,M24256}; enum eepromtype EepromType;/****************************** I2C总线 ******************************/ bit RW24XX(uchar *DataBuff,uchar ByteQuantity,uint Address,uchar ControlByte,enum eepromtype EepromType) { void Delay(uchar DelayCount); void IICStart(void); void IICStop(void); bit IICRecAck(void); void IICNoAck(void); void IICAck(void); uchar IICReceiveByte(void); void IICSendByte(uchar sendbyte); uchar data j,i = ERRORCOUNT; bit errorflag = 1; while (i--) { IICStart(); IICSendByte(ControlByte & 0xfe); if (IICRecAck()) continue; if (EepromType > M2416) { IICSendByte((uchar)(Address >> 8)); if (IICRecAck()) continue; } IICSendByte((uchar)Address); if (IICRecAck()) continue; if (!(ControlByte & 0x01)) { j = ByteQuantity; errorflag = 0; while (j--) { IICSendByte(*DataBuff++); if(!IICRecAck()) continue; errorflag = 1; break; } if (errorflag==1) continue; break; } else { IICStart(); IICSendByte(ControlByte); if (IICRecAck()) continue; while (--ByteQuantity) { *DataBuff++ = IICReceiveByte(); IICAck(); } *DataBuff = IICReceiveByte(); //read last byte data IICNoAck(); errorflag = 0; break; } } IICStop(); if (!(ControlByte & 0x01)) { Delay(255); Delay(255); Delay(255); Delay(255); } return(errorflag); }/***************** 启动总线 ********************/ void IICStart(void) { scl = 0; sda = 1; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0; sda = 1; }/***************** 停止IIC总线 ****************/ void IICStop(void) { scl = 0; sda = 0; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0; }/************** 检查应答位 *******************/ bit IICRecAck(void) { scl = 0; sda = 1; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); CY = sda; //因为返回值总是放在CY中的 scl = 0; return(CY); }/*************** 对IIC总线产生应答 *******************/ void IICACK(void) { sda = 0; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0; _nop_(); _nop_(); sda = 1; }/***************** 不对IIC总线产生应答 ***************/ void IICNoAck(void) { sda = 1; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0; }/******************* 向IIC总线写数据 *********************/ void IICSendByte(uchar sendbyte) { uchar data j = 8; for (;j > 0;j--) { scl = 0; sendbyte <<= 1; //无论C51怎样实现这个操作,始终会使CY=sendbyte^7; sda = CY; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } scl = 0; }/***************** 从IIC总线上读数据子程序 ******************/ uchar IICReceiveByte(void) { register receivebyte,i = 8; scl = 0; while (i--) { scl = 1; receivebyte = (receivebyte << 1) | sda; scl = 0; } return(receivebyte); }/*************** 一个简单延时程序 ******************/ void Delay(uchar DelayCount) { while(DelayCount--); } void Delay_Msec(uchar t) { uchar i; while (t > 0) { for (i = 0;i < 200;i++) { WDT = 1; _nop_(); _nop_(); _nop_(); _nop_(); } t--; } }/*************** 24C256读一个字节 *****************/ uchar Rd_24c256(uint beginbyte) { uchar data result; uchar i; EA = 0; i = RW24XX(&result,1,beginbyte,rd_24c256,M24256); EA = 1; return(result); }/*************** 24C256写一个字节 ***************/ void Wr_24c256(uint address,uchar datum) { uchar i; EA = 0; i = RW24XX(&datum,1,address,wr_24c256,M24256); Delay_Msec(10); EA = 1; }。

4.c51单片机I2c总线的读写编程步骤

你说的是IO模拟i2c吧,这个你参考下#pragma ot(6,SIZE)#define ERRORCOUNT 10enum eepromtype {M2401,M2402,M2404,M2408,M2416,M2432,M2464,M24128,M24256};enum eepromtype EepromType;/****************************** I2C总线 ******************************/bit RW24XX(uchar *DataBuff,uchar ByteQuantity,uint Address,uchar ControlByte,enum eepromtype EepromType){ void Delay(uchar DelayCount); void IICStart(void); void IICStop(void); bit IICRecAck(void); void IICNoAck(void); void IICAck(void); uchar IICReceiveByte(void); void IICSendByte(uchar sendbyte); uchar data j,i = ERRORCOUNT; bit errorflag = 1; while (i--) { IICStart(); IICSendByte(ControlByte & 0xfe); if (IICRecAck()) continue; if (EepromType > M2416) { IICSendByte((uchar)(Address >> 8)); if (IICRecAck()) continue; } IICSendByte((uchar)Address); if (IICRecAck()) continue; if (!(ControlByte & 0x01)) { j = ByteQuantity; errorflag = 0; while (j--) { IICSendByte(*DataBuff++); if(!IICRecAck()) continue; errorflag = 1; break; } if (errorflag==1) continue; break; } else { IICStart(); IICSendByte(ControlByte); if (IICRecAck()) continue; while (--ByteQuantity) { *DataBuff++ = IICReceiveByte(); IICAck(); } *DataBuff = IICReceiveByte(); //read last byte data IICNoAck(); errorflag = 0; break; } } IICStop(); if (!(ControlByte & 0x01)) { Delay(255); Delay(255); Delay(255); Delay(255); } return(errorflag);}/***************** 启动总线 ********************/void IICStart(void){ scl = 0; sda = 1; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda = 0; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0; sda = 1;}/***************** 停止IIC总线 ****************/void IICStop(void){ scl = 0; sda = 0; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); sda = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0;}/************** 检查应答位 *******************/bit IICRecAck(void){ scl = 0; sda = 1; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); CY = sda; //因为返回值总是放在CY中的 scl = 0; return(CY);}/*************** 对IIC总线产生应答 *******************/void IICACK(void){ sda = 0; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0; _nop_(); _nop_(); sda = 1;}/***************** 不对IIC总线产生应答 ***************/void IICNoAck(void){ sda = 1; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); scl = 0;}/******************* 向IIC总线写数据 *********************/void IICSendByte(uchar sendbyte){ uchar data j = 8; for (;j > 0;j--) { scl = 0; sendbyte <<= 1; //无论C51怎样实现这个操作,始终会使CY=sendbyte^7; sda = CY; scl = 1; _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); _nop_(); } scl = 0;}/***************** 从IIC总线上读数据子程序 ******************/uchar IICReceiveByte(void){ register receivebyte,i = 8; scl = 0; while (i--) { scl = 1; receivebyte = (receivebyte << 1) | sda; scl = 0; } return(receivebyte);}/*************** 一个简单延时程序 ******************/void Delay(uchar DelayCount){ while(DelayCount--);}void Delay_Msec(uchar t){ uchar i; while (t > 0) { for (i = 0;i < 200;i++) { WDT = 1; _nop_(); _nop_(); _nop_(); _nop_(); } t--; }}/*************** 24C256读一个字节 *****************/uchar Rd_24c256(uint beginbyte){ uchar data result; uchar i; EA = 0; i = RW24XX(&result,1,beginbyte,rd_24c256,M24256); EA = 1; return(result);}/*************** 24C256写一个字节 ***************/void Wr_24c256(uint address,uchar datum){ uchar i; EA = 0; i = RW24XX(&datum,1,address,wr_24c256,M24256); Delay_Msec(10); EA = 1;}。

5.怎么从I2C总线读数据

i2c有其协议的,我当时从不会到掌握其协议用了一阵子,就是狂读协议和例程 我把当时用非斯卡尔单片机读i2c mems传感器的历程写在下面#include #include "derivative.h"#define IIC_SDA_CTL PTCDD_PTCDD1#define IIC_SDA_DAT PTCD_PTCD1#define IIC_SCL_CTL PTCDD_PTCDD0#define IIC_SCL_DAT PTCD_PTCD0#define IIC_MST_HI 0#define IIC_MST_LO 1 void IIC_Start(void); void IIC_Restart(void); void IIC_Stop(void); byte IIC_SendByte(byte); byte IIC_Read(byte *, byte); byte IIC_Write(byte *, byte); void IIC_Delay(void); void IIC_Delay(void) { byte i; for (i=0;i<8;i++) {} }//==============================================================// Master generates a START condition on IIC bus//============================================================== void IIC_Start(void) { IIC_SDA_CTL = IIC_MST_HI; IIC_SCL_CTL = IIC_MST_HI; IIC_Delay(); IIC_SDA_CTL = IIC_MST_LO; IIC_SDA_DAT = 0; IIC_Delay(); IIC_SCL_CTL = IIC_MST_LO; IIC_SCL_DAT = 0; IIC_Delay(); }//==============================================================// Master generates a RESTART condition on IIC bus//============================================================== void IIC_Restart(void) { IIC_SDA_CTL = IIC_MST_HI; //SDA back to high while SCL remain in low IIC_Delay(); IIC_SCL_CTL = IIC_MST_HI; //SCL back to high, bus idle now IIC_Delay(); IIC_SDA_CTL = IIC_MST_LO; //RESTART condition occur IIC_Delay(); IIC_SCL_CTL = IIC_MST_LO; //SCL to low for standby IIC_Delay(); }//==============================================================// Master generates a STOP condition on IIC bus//============================================================== void IIC_Stop(void) { IIC_SDA_CTL = IIC_MST_LO; //make sure SDA is low IIC_Delay(); IIC_SCL_CTL = IIC_MST_HI; //I2C_SCL_CTL go to high first IIC_Delay(); IIC_SDA_CTL = IIC_MST_HI; //I2C_SDA_CTL have low-high transition while SCL is high IIC_Delay(); }//==============================================================// Master send out a byte of data and return with ACK/NACK// return with 0x00 if ACK received// return with 0xff if NACK received//============================================================== byte IIC_SendByte(byte outDat) { byte bit;//send out 8-bit data for (bit=0;bit<8;bit++) { if (outDat&0x80) IIC_SDA_CTL = IIC_MST_HI; else IIC_SDA_CTL = IIC_MST_LO; IIC_Delay(); IIC_SCL_CTL = IIC_MST_HI; IIC_Delay(); IIC_SCL_CTL = IIC_MST_LO; outDat <<= 1; }//check for the ACK/NACK IIC_SDA_CTL = IIC_MST_HI; //master release SDA IIC_Delay(); IIC_SCL_CTL = IIC_MST_HI; //master send a clock IIC_Delay(); if (IIC_SDA_DAT) bit = 0xff; //NACK else bit = 0; //ACK IIC_SCL_CTL = IIC_MST_LO; IIC_Delay(); return(bit); }//==============================================================// Master write a string of bytes through IIC us// Return with 0x00 if successful// Return with 0xff if failed//============================================================== byte IIC_Write(byte *buff, byte total) { while (total) { if (IIC_SendByte(*buff++)) //get NACK after data byte out return(0xff); //abort total--;//__RESET_WATCHDOG(); //needed only for EEPROM byte-program } return(0); }//==============================================================// Master read a byte of data and set ACK/NACK// return with data read//============================================================== byte IIC_ReadByte(byte ackFlag) { byte bit, dat; IIC_SDA_CTL = IIC_MST_HI; //make sure master release SDA//read 8 bits sof data for (bit=0;bit<8;bit++) { dat <<= 1; IIC_SCL_CTL = IIC_MST_HI; IIC_Delay(); if (IIC_SDA_DAT) //read back data dat |= 0x01; IIC_SCL_CTL = IIC_MST_LO; IIC_Delay(); }//echo with ACK/NACK if (ackFlag==0) IIC_SDA_CTL = IIC_MST_LO; //echo back ACK else IIC_SDA_CTL = IIC_MST_HI; //echo back NACK IIC_Delay(); IIC_SCL_CTL = IIC_MST_HI; IIC_Delay(); IIC_SCL_CTL = IIC_MST_LO; IIC_Delay(); return(dat); }//==============================================================// Master read a string of data bytes through IIC us//============================================================== byte IIC_Read(byte *buff, byte total) { byte count; if (total==0) return(0); if (total==1) { //read one byte only buff[0] = IIC_ReadByte(1); //NACK after read return(1); } else { //read more than one bytes count = 0; while(total>1) { IIC_Delay(); buff[count++] = IIC_ReadByte(0);。

i2c读写函数怎么写

转载请注明出处育才学习网 » i2c读写函数怎么写(I2C协议怎么写)

知识

左边英文怎么写简单(左用英语怎么写)

阅读(630)

本文主要为您介绍左边英文怎么写简单,内容包括“左”用英语怎么写,左的英文怎么写,在左边用英语怎么说。“左”的英语:Left读音:英 [left] 美 [left]adj. 左边的adv. 向左n. 左边;左派分子;【体】左手拳动词lea

知识

围子框怎么写(html文本框圆角边框css样式怎么写)

阅读(359)

本文主要为您介绍围子框怎么写,内容包括我圈的那个框该怎么写求一篇做参考,jsp下拉框怎么写,html文本框圆角边框css样式怎么写。html文本框圆角边框css样式可以通过改变border-radius属性的值进行添加。border-radius值的单位可以使用“px

知识

闲的英文单词怎么写(请教高手闲静用英语怎么说)

阅读(418)

本文主要为您介绍闲的英文单词怎么写,内容包括有闲用英语怎么翻译,状态用一个字表示,闲,用英语怎么说,请教高手“闲静”用英语怎么说。闲静”的英文翻译_百度翻译闲静”Quiet" quiet_百度翻译quiet 英[ˈkwaɪət] 美[ˈkwaɪɪt] adj. 清静

知识

乌鸦怎么用英语写(乌鸦的英文)

阅读(404)

本文主要为您介绍乌鸦怎么用英语写,内容包括求乌鸦的英语怎么写怎么念,乌鸦的英文单词怎么写,乌鸦用英文咋写。乌鸦的英文:crowcrow 读法 英 [krəʊ] 美 [kro] vi. 啼叫;报晓2、n. [鸟] 乌鸦;鸡鸣;撬棍短语:at c

知识

破坏环境用英语怎么写(破坏环境的英语翻译)

阅读(344)

本文主要为您介绍破坏环境用英语怎么写,内容包括破坏环境的英文,污染空气和破坏环境的英文怎么写,破坏环境的英语翻译。How to damage the environment?及物动词 vt. &amp; 不及物动词 vi.1.损害, 毁坏, 加害于

知识

缺货通知具体怎么写(通知书之缺货通知怎么写)

阅读(1585)

本文主要为您介绍缺货通知具体怎么写,内容包括通知书之缺货通知怎么写,对于暂时缺货温馨提示顾客该怎么写啊,怎样写缺货单。去百度文库,查看完整内容>内容来自用户:度米文库缺货通知怎么写【篇一:关于供应商缺货处罚函的说明】关于供应商缺货

知识

店庆的倒计时怎么写(庆典倒计时的短文主要内容是什么)

阅读(347)

本文主要为您介绍店庆的倒计时怎么写,内容包括十周年倒计时话术怎么写好,庆典倒计时的短文主要内容是什么,关于倒计时的说说怎么写。生命倒计时阅读答案生命倒计时①非洲有一个民族,婴儿刚生下来就获得60岁的寿命,以后逐年递减,直到零岁.人生

知识

学院宣传片策划怎么写(学校党建宣传片策划方案怎么写)

阅读(363)

本文主要为您介绍学院宣传片策划怎么写,内容包括大学品牌活动宣传片策划怎么写,学校党建宣传片策划方案怎么写,校园宣传片策划怎么写,简洁一点,别太官方。学校党建宣传片策划方案如下:一,学校组织党建宣传活动每一个班级都要举行党建宣传班会

知识

粤语han字怎么写(粤语怎么说池早香)

阅读(393)

本文主要为您介绍粤语han字怎么写,内容包括粤语汉字怎么写,广东话han钱怎么写意思就是省钱,请问广东话的“节省”的“han”字怎么打。“池早香”?是不是:迟早香?迟----------ci4,读第四声。同音字:池, 辞, 瓷, 慈,早----------zou2,读第二

知识

中文名英文缩写怎么写(用中文简写当英文名字怎么缩写)

阅读(469)

本文主要为您介绍中文名英文缩写怎么写,内容包括用中文简写当英文名字怎么缩写,中文名怎样译成英文缩写,中文名怎样译成英文缩写。1. 教育部出台过《中国人名汉语拼音字母拼写规则》国际体育比赛等场合,人名可以缩写。2. 汉语人名的缩写,姓全

知识

android中短信注册怎么写(安卓手机短信验证码如何实现)

阅读(376)

本文主要为您介绍android中短信注册怎么写,内容包括Android做个短信验证码,就是注册的时候填写自己的手机号码,然后,如何实现Android应用的短信认证注册,android短信验证码注册,我在android端提交url到web段生成验证码,。你找的是手机短信

知识

搞促销的广告词怎么写(卖家具搞活动的广告词怎么写才吸引人)

阅读(376)

本文主要为您介绍搞促销的广告词怎么写,内容包括卖家具搞活动的广告词怎么写才吸引人,促销活动的广告语怎么写从三个问题入手,促销活动的广告语怎么写。先确定主题,然后可以直接用商品的牌号或者名称作为标题,在写广告词的时候,可以通过词语的

知识

hyperlink函数怎么用(在excel中HYPERLINK公式怎么用啊)

阅读(348)

本文主要为您介绍hyperlink函数怎么用,内容包括HYPERLINK函数用法,exce中的HYPERLINK函数要怎么用,在excel中HYPERLINK公式怎么用啊。du308说得对。再举一个例:在同一个工作簿Book1中表3的B2单元格中输入公式:=HYPERLINK("[Book1]表1!C5",

知识

定义域有3个限制条件怎么写(求函数的定义域有哪些限制条件)

阅读(550)

本文主要为您介绍定义域有3个限制条件怎么写,内容包括求函数的定义域限制条件如何表示定义域,定义域有什么限制条件尤其是对数函数带根号的限制,已知定义域为的函数同时满足以下三个条件:①对任意的,总有;。用区间或者集合表示定义域。当函数

知识

split的函数怎么写(如果用split函数该怎么写)

阅读(238)

本文主要为您介绍split的函数怎么写,内容包括如果用split函数该怎么写,Split函数怎么用,split函数要以["为分界,表达式怎么写。public static void main(String[] args) { for(Integer i=100;i<=99999;

知识

large函数怎么用(EXCEL里的large公式怎么用)

阅读(307)

本文主要为您介绍large函数怎么用,内容包括EXCEL里的large公式怎么用,excel函数large,这个函数怎么用哈,它和SMALL有什么关系哈,好像,c语言中large函数有什么用。EXCEL里large公式的使用步骤如下:1.以这个成绩的例子计算各名次的分数。

知识

log的底数和真数怎么写(关于对数函数中的,真数,底数)

阅读(315)

本文主要为您介绍log的底数和真数怎么写,内容包括关于对数函数中的,真数,底数,什么是对数式中的真数,底数,对数的底数与真数有什么要求。真数亦称反对数,是相对于假数(即对数)而言的数。如果N=a^x,(a>0,a≠1)。即a的x次方等于N(a>0,且a≠1),那么

知识

matlab窗口函数怎么写(matlab怎么写函数文件~)

阅读(381)

本文主要为您介绍matlab窗口函数怎么写,内容包括matlab怎么在命令窗口输入一个函数,如f(x)=x+1,然后直接在自定义,matlab怎么写函数文件~,matlab如何输入函数。首先在电脑中打开matlab软件。

[/e:loop]