国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

I2C用法和MSP430F5299上的I2C

這篇具有很好參考價(jià)值的文章主要介紹了I2C用法和MSP430F5299上的I2C。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

IIC總線特點(diǎn):

1. 二線傳輸;
2. 無中心主機(jī);
3. 軟件尋址;
4. 應(yīng)答式數(shù)據(jù)傳輸過程;
5. 節(jié)點(diǎn)可帶點(diǎn)接入或撤出;
6. IIC的SCL和SDA都需要接上拉電阻,保證空閑狀態(tài)的穩(wěn)定性;

數(shù)據(jù)傳輸過程:

由主機(jī)發(fā)出起始信號(hào)和停止信號(hào)。

起始信號(hào):當(dāng)SCL保持為高電平時(shí),SDA產(chǎn)生一個(gè)下降沿,則代表起始信號(hào);

停止信號(hào):當(dāng)SCL保持為高電平時(shí),SDA產(chǎn)生一個(gè)上升沿,則代表停止信號(hào);

數(shù)據(jù)傳輸:

??? ??? ??? ?SCL的下降沿后 ----> 發(fā)送方發(fā)送數(shù)據(jù)位;

??? ??? ??? ?SCL的上升沿后SDA總線數(shù)據(jù)穩(wěn)定 ----> 接收方接收數(shù)據(jù)位(因?yàn)樯仙睾?,SCL為高電平,SDA不能有任何電平跳變,只能接收數(shù)據(jù));

應(yīng)答信號(hào):發(fā)送方釋放SDA總線。若SDA保持低電平,代表接收方發(fā)送了一個(gè)應(yīng)答位并拉低了SDA總線;因?yàn)槟J(rèn)情況下,SDA為高電平。否則,代表接收方未應(yīng)答。

????????msp430 i2c,單片機(jī),嵌入式硬件

?

注:IIC信號(hào)在數(shù)據(jù)傳送的過程中,當(dāng)SCL=1時(shí),數(shù)據(jù)線SDA必須保持穩(wěn)定狀態(tài),不允許有電平跳變,否則都會(huì)被為是總線的起始信號(hào)或者停止信號(hào)。只有在時(shí)鐘線上的信號(hào)為低電平期間,數(shù)據(jù)線上的電平狀態(tài)才允許變化,所以在代碼中會(huì)經(jīng)??吹?strong>對(duì)SCL引腳置0的操作。

代碼實(shí)現(xiàn)(通用):

  • 主機(jī)發(fā)送數(shù)據(jù)
//主機(jī)向從機(jī)寫數(shù)據(jù)(一個(gè)字節(jié))
void IIC_Write_One_Byte(I2C_n i2cn,uint8_t daddr,uint8_t addr,uint8_t data)
{
    IIC_Start(i2cn); //1.主機(jī)產(chǎn)生一個(gè)開始條件  
    IIC_Send_Byte(i2cn,daddr<<1);   //2.主機(jī)發(fā)送從機(jī)地址和方向。前7位為從機(jī)地址,第8位表示方向:0表示知己發(fā)送數(shù)據(jù),1表示主機(jī)接收數(shù)據(jù)
    IIC_Wait_Ack(i2cn);//等待接收方應(yīng)答
    IIC_Send_Byte(i2cn,addr);   //3.發(fā)送從機(jī)內(nèi)部寄存器地址
    IIC_Wait_Ack(i2cn); 	 										  		   
    IIC_Send_Byte(i2cn,data);     //4.發(fā)送數(shù)據(jù)字節(jié)							   
    IIC_Wait_Ack(i2cn);  		    	   
    IIC_Stop(i2cn);//5.主機(jī)產(chǎn)生一個(gè)停止條件 
	DELAY_US(100); 
}
  • 主機(jī)接收數(shù)據(jù)
//主機(jī)從從機(jī)讀數(shù)據(jù)(一個(gè)字節(jié))
uint8_t IIC_Read_One_Byte(I2C_n i2cn,uint8_t daddr,uint8_t addr)
{
    uint8_t temp=0;		  	    																 
    IIC_Start(i2cn); //1.主機(jī)產(chǎn)生一個(gè)開始條件
    IIC_Send_Byte(i2cn,daddr<<1);//2.主機(jī)發(fā)送從機(jī)地址和方向,暫時(shí)主機(jī)需要向從機(jī)發(fā)送從機(jī)內(nèi)部寄存器地址,所以最后一位任然是0
    IIC_Wait_Ack(i2cn);
    IIC_Send_Byte(i2cn,addr);   //3.發(fā)送從機(jī)內(nèi)部寄存器地址
    IIC_Wait_Ack(i2cn);	    
    IIC_Start(i2cn);  	 	   
    IIC_Send_Byte(i2cn,(daddr<<1)|0x01); //4.前面主機(jī)需要發(fā)送的數(shù)據(jù)已經(jīng)發(fā)送完了,之后進(jìn)入接收模式,所以最后一位發(fā)送1			   
    IIC_Wait_Ack(i2cn);	 
    temp=IIC_Read_Byte(i2cn,0);		   
    IIC_Stop(i2cn);//5.產(chǎn)生一個(gè)停止條件	    
	return temp;
}

MSP430F5529的IIC配置:

  • 基本過程

(官方文檔的Users Guide)

The recommended USCI initialization/reconfiguration process is:

  1. Set UCSWRST (BIS.B #UCSWRST,&UCxCTL1). 設(shè)置UCSWRST位

  2. Initialize all USCI registers with UCSWRST = 1. 在UCSWRST位為1的條件下,初始化其他寄存器

  3. Configure ports. 配置引腳

  4. Clear UCSWRST through software (BIC.B #UCSWRST,&UCxCTL1). 清除UCSWRST位

  5. Enable interrupts (optional).使能中斷(可選)

  • 代碼實(shí)現(xiàn)
void  I2C_MasterInit(I2Cn i2cn,uint16_t SlaveID,uint32_t BaudRate)           
{
  	WordType BR;
  	BR.Word=g_sClock.SMCLK.nHZ/BaudRate;        //求取波特率所需的分頻系數(shù)
  	GPIO_Init(I2C_PIN[i2cn-I2C0].SCL.Port,I2C_PIN[i2cn-I2C0].SCL.Pin,GPO);
  	//輸出9個(gè)時(shí)鐘以恢復(fù)I2Cn總線狀態(tài)  
    for(uint8_t i=0;i<9;i++)
    {
        GPIO_WriteBit  (I2C_PIN[i2cn-I2C0].SCL.Port,I2C_PIN[i2cn-I2C0].SCL.Pin, BIT_SET);
        DELAY_US(5);
        GPIO_WriteBit  (I2C_PIN[i2cn-I2C0].SCL.Port,I2C_PIN[i2cn-I2C0].SCL.Pin,RESET);
        DELAY_US(5);
    }
    //初始化引腳
    //3. Configure ports. 
    GPIO_Init(I2C_PIN[i2cn-I2C0].SCL.Port,I2C_PIN[i2cn-I2C0].SCL.Pin,SEL);
    GPIO_Init(I2C_PIN[i2cn-I2C0].SDA.Port,I2C_PIN[i2cn-I2C0].SDA.Pin,SEL);
    //初始化寄存器
    //1. Set UCSWRST (BIS.B #UCSWRST,&UCxCTL1). 
    USCIX[i2cn]->CTL1 = UCSWRST;                   	// 軟件復(fù)位使能,保持復(fù)位狀態(tài)
    //2. Initialize all USCI registers with UCSWRST = 1. 
    USCIX[i2cn]->CTL0 = UCMST + UCMODE_3 + UCSYNC; 	// I2C主機(jī),同步模式
    if(SlaveID > 0x7F)
    {
        USCIX[i2cn]->SLA10 = BIT_SET;				//10-bit address
    }
    else
    {
        USCIX[i2cn]->SLA10 = RESET;					//7-bit address
    }
    USCIX[i2cn]->I2CSA = SlaveID;					//從機(jī)地址寄存器 賦值
    USCIX[i2cn]->CTL1 |= UCSSEL__SMCLK;             //使用SMCLK作為時(shí)鐘源
    USCIX[i2cn]->BR0 = BR.Byte[0];
    USCIX[i2cn]->BR1 = BR.Byte[1];
    //4. Clear UCSWRST through software (BIC.B #UCSWRST,&UCxCTL1). 
    USCIX[i2cn]->CTL1 &=~ UCSWRST;                  //清除軟件復(fù)位,正常操作
	//5. Enable or disable interrupts (optional)
    USCIX[i2cn]->IE = 0u;                           //關(guān)閉所有中斷
    
    USCIX[i2cn]->RXIFG = RESET;                     //清除接收數(shù)據(jù)標(biāo)志
    USCIX[i2cn]->TXIFG = BIT_SET;                   //置位發(fā)送緩沖區(qū)為空標(biāo)志 
}
  • 代碼解析

1、MSP430的I2C有一個(gè)BUSY位:

The bus busy bit, UCBBUSY, is set after a START and cleared after a STOP

BUSY位為1或者UCTCSTP位為1時(shí),代表I2C總線忙。

msp430 i2c,單片機(jī),嵌入式硬件msp430 i2c,單片機(jī),嵌入式硬件

?

//代碼實(shí)現(xiàn)如下:
while((USCIX[i2cn]->UC_BUSY==BIT_SET) || (USCIX[i2cn]->TXSTP==BIT_SET));//確保總線空閑

//起始位發(fā)送:
inline void I2C_Start(I2Cn i2cn)
{
    while((USCIX[i2cn]->UC_BUSY==BIT_SET) || (USCIX[i2cn]->TXSTP==BIT_SET));//確??偩€空閑
    USCIX[i2cn]->TXSTT = BIT_SET;
}

//停止位發(fā)送:
inline void I2C_Stop(I2Cn i2cn)
{
    while(USCIX[i2cn]->UC_BUSY == BIT_SET);                 //等待空閑
	/*
	TXSTP位是一個(gè)條件位,該條件在NACK之前:
		當(dāng)該位為1時(shí),代表需要產(chǎn)生一個(gè)STOP位,在STOP產(chǎn)生后,會(huì)自動(dòng)清除該位。
		于是就有了下面兩行代碼。
	*/
    USCIX[i2cn]->TXSTP =BIT_SET;                            //發(fā)送停止位
    while(USCIX[i2cn]->TXSTP == BIT_SET);                   //等待停止位發(fā)送完成
}

/*******************************************************************************
*  函數(shù)名稱:I2C_WaitBusy(I2Cn i2cn)
*  功能說明:I2C等待空閑
*  參數(shù)說明:I2Cn i2cn      :模塊號(hào)
*  函數(shù)返回:無
*  使用示例:I2C_WaitBusy(I2C1);  //等待I2C1模塊不忙
********************************************************************************/
inline void I2C_WaitBusy(I2Cn i2cn)
{
  while(USCIX[i2cn]->UC_BUSY == BIT_SET);                    //等待發(fā)送或接收完成
}

2、模式切換

inline void I2C_EnterSend (I2Cn i2cn)
{
  USCIX[i2cn]->TR = BIT_SET;                              //進(jìn)入發(fā)送模式
}

inline void I2C_EnterRead (I2Cn i2cn)
{
  USCIX[i2cn]->TR = RESET;                             //進(jìn)入接收模式
}

3、開發(fā)板內(nèi)部操作,并未涉及到主從之間的信息傳遞:發(fā)送/接收一字節(jié)msp430 i2c,單片機(jī),嵌入式硬件msp430 i2c,單片機(jī),嵌入式硬件

/*******************************************************************************
*  函數(shù)名稱:I2C_SendByte (I2Cn i2cn,uint8_t data)
*  功能說明:I2C發(fā)送一字節(jié)數(shù)據(jù)
*  參數(shù)說明:I2Cn i2cn      :模塊號(hào)
             uint8_t data     :要發(fā)送的數(shù)據(jù)
*  函數(shù)返回:無
*  使用示例:I2C_SendByte (I2C1,0x01);  //I2C1模塊發(fā)送一字節(jié)數(shù)據(jù)0x01
********************************************************************************/
inline void I2C_SendByte (I2Cn i2cn,uint8_t data)
{
    /*
    當(dāng)UCBxTXBUF寄存器為空時(shí),TXIFG位被置為1
    */
    while(USCIX[i2cn]->TXIFG == RESET);                   //等待TXBUF為空
    USCIX[i2cn]->TXBUF = data;                            //發(fā)送要寫入的數(shù)據(jù)
}

/*******************************************************************************
*  函數(shù)名稱:I2C_ReadByte  (I2Cn i2cn)
*  功能說明:IIC讀取一個(gè)字節(jié)數(shù)據(jù)
*  參數(shù)說明:I2Cn i2cn      :模塊號(hào)
*  函數(shù)返回:讀取到的數(shù)據(jù)
*  使用示例:uint8 data = I2C_ReadByte  (I2C1);   //讀取數(shù)據(jù)
********************************************************************************/
inline uint8_t I2C_ReadByte  (I2Cn i2cn)
{
    /*
    當(dāng)UCBxRXBUF寄存器接收到一個(gè)完整的字節(jié)時(shí),RXIFG位被置為1
    */
    while(USCIX[i2cn]->RXIFG == RESET);                 //等待接收到數(shù)據(jù)
    return USCIX[i2cn]->RXBUF;
}

4、Data on SDA must be stable during the high period of SCL (see Figure 38-4). The high and low state of SDA can only change when SCL is low, otherwise START or STOP conditions are generated.

下面這種時(shí)序?qū)τ跀?shù)據(jù)傳輸過程才是安全的,即在SCL為高電平時(shí),SDA總線的電平不發(fā)生改變;數(shù)據(jù)的接收和發(fā)送(SDA的邊沿處)總是發(fā)生在SCL為低電平時(shí)。

msp430 i2c,單片機(jī),嵌入式硬件

?5、主從機(jī)之間通信

/*******************************************************************************
*  函數(shù)名稱: I2C_WriteReg(I2Cn i2cn, uint8_t address, char data)
*  功能說明: 往某一個(gè)地址寫入一字節(jié)數(shù)據(jù)
*  參數(shù)說明: I2Cn i2cn      :模塊號(hào)
              uint8_t address :寄存器地址
              uint8_t data    :對(duì)該地址要寫入的數(shù)據(jù)內(nèi)容
*  函數(shù)返回:無
*  使用示例:I2C_WriteReg(I2C1, 0x20, 0x12);   //對(duì)地址為0x20處寫入內(nèi)容0x12
********************************************************************************/
void  I2C_WriteReg(I2Cn i2cn, uint8_t address, uint8_t data)     
{
    I2C_EnterSend(i2cn);
    I2C_Start    (i2cn);                        //發(fā)送一個(gè)起始信號(hào)
    I2C_SendByte (i2cn,address);                //發(fā)送要寫入的地址
    I2C_SendByte (i2cn,data);                   //發(fā)送要寫入的數(shù)據(jù)
    I2C_Stop     (i2cn);                        //發(fā)送停止位
    I2C_WaitBusy (i2cn);
}

/*******************************************************************************
*  函數(shù)名稱: I2C_ReadReg(I2Cn i2cn, uint8_t address) 
*  功能說明: 對(duì)外部芯片讀取某一地址的內(nèi)容
*  參數(shù)說明: I2Cn i2cn      :模塊號(hào)
              uint8_t address :寄存器地址
*  函數(shù)返回: 讀取到的內(nèi)容
*  使用示例: uint8_t data = I2C_ReadReg(I2C1, 0x20);  //讀取寄存器地址為0x20處的內(nèi)容
********************************************************************************/
uint8_t I2C_ReadReg(I2Cn i2cn, uint8_t address)             
{	
    I2C_EnterSend (i2cn);                       //進(jìn)入發(fā)送模式
    I2C_Start     (i2cn);                       //發(fā)送一個(gè)起始信號(hào)
    I2C_SendByte  (i2cn,address);               //發(fā)送一字節(jié)數(shù)據(jù)
    I2C_WaitBusy  (i2cn);                       //等待傳輸完畢
    I2C_EnterRead (i2cn);                       //進(jìn)入接收模式
    I2C_Start     (i2cn);                       //發(fā)送一個(gè)起始信號(hào)
    I2C_WaitBusy  (i2cn);                       //等待空閑
    I2C_Stop      (i2cn);                       //發(fā)送一個(gè)停止信號(hào),讀的話要先發(fā)送停止位
    return I2C_ReadByte(i2cn);                  //讀取數(shù)據(jù)
}

/*
注:
1、對(duì)比這里的代碼和上面的通用代碼,就會(huì)發(fā)現(xiàn)這里少了發(fā)送從機(jī)地址的步驟,我沒有找到具體的描述文字,猜測(cè)應(yīng)該是將從機(jī)地址存入對(duì)應(yīng)的寄存器且指定模式(發(fā)送或接收模式)后,MSP430內(nèi)部有自動(dòng)找到正確從機(jī)的機(jī)制。

2、跟通用代碼還有個(gè)不一樣的點(diǎn),就是MSP430的I2C數(shù)據(jù)接收是在發(fā)送STOP位之后。官方文檔中有這么一句:If UCBxRXBUF is not read, the master holds the bus during reception of the last data bit and until the UCBxRXBUF is read. 猜測(cè)大概意思是,RXBUF中的數(shù)據(jù)如果沒有被讀出去的話,主機(jī)應(yīng)該會(huì)保持SCL總線的電平,直到數(shù)據(jù)被讀取。
*/

?6、連續(xù)寫/讀

//IIC主機(jī)連續(xù)寫
//i2cn:IIC模塊號(hào)
//reg:寄存器地址
//len:寫入長度
//buf:數(shù)據(jù)區(qū)
//返回值:0,正常
//    其他,錯(cuò)誤代碼
char I2C_Write_Len(I2Cn i2cn,uint8_t reg,uint8_t len,uint8_t *buf)
{
    uint8_t i; 
    I2C_EnterSend (i2cn);
    I2C_Start(i2cn);
    I2C_SendByte(i2cn,reg);	//寫寄存器地址
    I2C_WaitBusy(i2cn);		//等待應(yīng)答
    for(i=0;i<len;i++)
    {
        I2C_SendByte(i2cn,buf[i]);	//發(fā)送數(shù)據(jù)
        I2C_WaitBusy(i2cn);	
    }    
    I2C_Stop(i2cn); 
	return 0;
}

//IIC主機(jī)連續(xù)讀
//i2cn:IIC模塊號(hào)
//reg:要讀取的寄存器地址
//len:要讀取的長度
//buf:讀取到的數(shù)據(jù)存儲(chǔ)區(qū)
//返回值:0,正常
//    其他,錯(cuò)誤代碼
uint8_t I2C_Read_Len(I2Cn i2cn,uint8_t reg,uint8_t len,uint8_t *buf)
{ 
    I2C_EnterSend (i2cn);
    I2C_Start(i2cn);
    I2C_SendByte(i2cn,reg);	//寫寄存器地址
    I2C_WaitBusy(i2cn);		//等待應(yīng)答
    I2C_EnterRead (i2cn);
    I2C_Start(i2cn);
    while(len)
    {
        if(len==1)*buf=I2C_ReadByte(i2cn);//讀數(shù)據(jù),發(fā)送nACK 
        else *buf=I2C_ReadByte(i2cn);		//讀數(shù)據(jù),發(fā)送ACK  
        len--;
        buf++; 
    }    
    I2C_Stop(i2cn);	//產(chǎn)生一個(gè)停止條件 
    return 0;	
}

7、其他文章來源地址http://www.zghlxwxcb.cn/news/detail-648491.html

/*******************************************************************************
*  函數(shù)名稱: I2C_ITConfig (I2Cn i2cn,I2C_IRQn irqn,STATUS ITState)
*  功能說明: 設(shè)置使能或禁止I2Cn的某一個(gè)中斷
*  參數(shù)說明: I2Cn i2cn      :模塊號(hào)
              I2C_IRQn irqn :中斷類型
*  函數(shù)返回:無
*  使用示例:I2C_ITConfig (I2C1,I2C_RX_IRQn,ENABLE);  //使能I2C1的接收中斷
********************************************************************************/
void  I2C_ITConfig (I2Cn i2cn,I2C_IRQn irqn,STATUS ITState)
{
    if(ITState != DISABLE)
    {
        USCIX[i2cn]->IE |= irqn;
    }
    else
    {
        USCIX[i2cn]->IE &=~irqn;
    }
}
/*******************************************************************************
*  函數(shù)名稱: I2C_GetITStatus(I2Cn i2cn,I2C_IRQn irqn)
*  功能說明: 獲取I2C的某一個(gè)中斷標(biāo)志
*  參數(shù)說明: I2Cn i2cn      :模塊號(hào)
              I2C_IRQn irqn :中斷類型
*  函數(shù)返回: STATUS : TRUE 中斷事件發(fā)生,F(xiàn)ALSE 中斷事件未發(fā)生
*  使用示例: if(TRUE == I2C_GetITStatus(I2C0,I2C_RX_IRQn)){...} //判斷I2C0模塊是否接收完成事件中斷發(fā)生
********************************************************************************/
STATUS I2C_GetITStatus(I2Cn i2cn,I2C_IRQn irqn)
{
  	return ((USCIX[i2cn]->IFG & irqn) ? TRUE :FALSE);
}
/*******************************************************************************
*  函數(shù)名稱: I2C_ClearITPendingBit(I2Cn i2cn,I2C_IRQn irqn)
*  功能說明: 清除I2Cn的某一個(gè)中斷標(biāo)志
*  參數(shù)說明: I2Cn i2cn      :模塊號(hào)
              I2C_IRQn irqn :中斷類型
*  函數(shù)返回: 無
*  使用示例: I2C_ClearITPendingBit(I2C0,I2C_RX_IRQn);   //清除I2C1模塊接收中斷標(biāo)志位
********************************************************************************/
void  I2C_ClearITPendingBit(I2Cn i2cn,I2C_IRQn irqn)
{
    USCIX[i2cn]->IFG &=~ irqn;
}

到了這里,關(guān)于I2C用法和MSP430F5299上的I2C的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MSP430F5529——中斷理解

    MSP430F5529——中斷理解

    認(rèn)識(shí)低功耗模式; MSP430的中斷,需要兩個(gè)部分,一部分是打開中斷,另外一部分是編寫中斷服務(wù)函數(shù) 首先我們得知道__bis_SR_register和_BIS_SR是一個(gè)玩意。查看宏定義可知 ?_BIS_SR()可傳入的參數(shù) 然后我們查看x的值,發(fā)現(xiàn)里面有八個(gè)可以傳入的值 我們這里只需要關(guān)系GIE就可以

    2024年02月16日
    瀏覽(32)
  • MSP430F5529學(xué)習(xí)筆記

    該MCU是由德州儀器TI生產(chǎn)的16位低功耗單片機(jī) 主要分以下型號(hào): 專注低功耗的 1xx 通用型,配備1KB-60KB FLASH、512B-10KB RAM,工作時(shí)耗電僅達(dá)200uA/MIPS,RAM保持模式耗電0.1uA,RTC模式耗電0.7uA;可在6us之內(nèi)快速喚醒。搭載10/12位斜率SAR ADC,集成模擬比較器、DMA、硬件乘法器、BOR、SV

    2024年02月15日
    瀏覽(29)
  • MSP430F5529庫函數(shù)學(xué)習(xí)——串口

    MSP430F5529庫函數(shù)學(xué)習(xí)——串口

    波特率計(jì)算網(wǎng)站;導(dǎo)入MSP430Ware,查看例程;原理圖和中文開發(fā)手冊(cè)獲取 目錄 GPIO_setAsPeripheralModuleFunctionInputPin()和GPIO_setAsPeripheralModuleFunctionOutputPin 函數(shù)聲明 ?作用 參數(shù) selectedPort selectedPins 使用 USCI_A_UART_init() 函數(shù)聲明 ?作用 參數(shù) baseAddress param ?USCI_A_UART_enable() 函數(shù)

    2024年02月16日
    瀏覽(31)
  • 05:OLED模塊【MSP430F5529】

    05:OLED模塊【MSP430F5529】

    目錄 實(shí)物圖 字模取字 ????????字模軟件 ? ? ? ? 取模步驟 ????????1.設(shè)置軟件 ????????2.取模 ????????3.輸出數(shù)據(jù) ?代碼 type.h oledfont.h oled.h oled.c main.c 下面圖片中,可以看到OLED模塊的四個(gè)接口:GND,VCC,SCL,SDA GND VCC SCL SDA 接地 接電源3.3V/5V 接P3.5 接P3.6 ??????

    2024年02月16日
    瀏覽(29)
  • MSP430F5529庫函數(shù)GPIO學(xué)習(xí)

    MSP430F5529庫函數(shù)GPIO學(xué)習(xí)

    導(dǎo)入MSP430Ware,查看例程;數(shù)據(jù)手冊(cè)以及原理圖獲取 建議不是很了解寄存器的看完我的MSP430F5529學(xué)習(xí)筆記? 目錄 GPIO_setAsOutputPin() 函數(shù)聲明 作用 參數(shù) selectedPort selectedPins 修改的寄存器 使用 與GPIO_setAsOutputPin()參數(shù)一致的函數(shù) ?GPIO_setOutputHighOnPin() GPIO_setOutputLowOnPin()

    2024年02月15日
    瀏覽(31)
  • msp430f5529學(xué)習(xí)筆記(2)時(shí)鐘系統(tǒng)

    msp430f5529學(xué)習(xí)筆記(2)時(shí)鐘系統(tǒng)

    寫在前~本章將會(huì)詳細(xì)的講解msp430f5529單片機(jī)的時(shí)鐘系統(tǒng)及其使用方法。如有不妥的地方歡迎各位大佬斧正!??! 目錄 什么是時(shí)鐘系統(tǒng)和時(shí)鐘源 MSP430f5529時(shí)鐘源和時(shí)鐘系統(tǒng)介紹 產(chǎn)生時(shí)鐘信號(hào)的時(shí)鐘源: 時(shí)鐘配置 ? ? ? ?在單片機(jī)中,單片機(jī)每開始一個(gè)周期的工作就需要一個(gè)節(jié)

    2024年02月17日
    瀏覽(21)
  • 06:PWM與電機(jī)驅(qū)動(dòng)【MSP430F5529】

    電機(jī)型號(hào): 工作方式: 原理圖以及接線: 根據(jù)官方例程,主要代碼為drive.c drive.h main.c (后面好像使用的時(shí)候會(huì)有什么沖突導(dǎo)致1或者2通道無法正常運(yùn)行,不太記得了,可以到實(shí)物上實(shí)驗(yàn)一下子) 下面是智能送藥小車使用PWM驅(qū)動(dòng)電機(jī)相關(guān)代碼與注釋(在實(shí)物中,均能正常運(yùn)行)

    2024年02月15日
    瀏覽(28)
  • MSP430F5529學(xué)習(xí)筆記(五)——串口|UART

    MSP430F5529學(xué)習(xí)筆記(五)——串口|UART

    ??????? 我們?cè)谑褂肕SP430的時(shí)候大家會(huì)發(fā)現(xiàn)插上usb線后電腦上有兩個(gè)端口標(biāo)識(shí),那么在進(jìn)行串口通信時(shí)選擇哪個(gè)呢。其實(shí)如圖所示,上面的端口是用來進(jìn)行串口通信的,下面的則是用來進(jìn)行程序的下載,大家在使用的時(shí)候多加分辨即可。 ?????????當(dāng)然熟悉單片機(jī)操作的

    2024年02月16日
    瀏覽(27)
  • 【2023電賽備賽】msp430f5529學(xué)習(xí)筆記(一)

    【2023電賽備賽】msp430f5529學(xué)習(xí)筆記(一)

    【寫在前】 本人目前是大二在讀生,第一次參加電賽,準(zhǔn)備不充分,結(jié)果熬了四天,最后成績(jī)卻不如人意。有51和32的基礎(chǔ),然后想立一個(gè)flag系統(tǒng)的學(xué)習(xí)一下主打超低功耗的msp430f5529單片機(jī)為比賽做準(zhǔn)備(畢竟電賽限制TI的板子)。另一方面也是給電協(xié)的后繼者留下一些參考的

    2024年02月11日
    瀏覽(33)
  • MSP430F5529單片機(jī)入門學(xué)習(xí)筆記1

    MSP430F5529單片機(jī)入門學(xué)習(xí)筆記1

    本筆記整理自B站教程 MSP430F5529單片機(jī)學(xué)習(xí)視頻匯總 右邊部分寫錯(cuò)了,看的時(shí)候注意 注意#include“driverlib.h”頭文件時(shí)要注意: 添加MSP430F5xx_6xx文件夾到當(dāng)前工程下 MSP430F5xx_6xx文件夾是在導(dǎo)入的msp430ware_3_80_13_03包中找 把上述MSP430F5xx_6xx文件夾的路徑包含進(jìn)來 有三個(gè)系統(tǒng)時(shí)鐘可

    2024年02月06日
    瀏覽(25)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包