微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > CC1101接口库在STM32上的移植

CC1101接口库在STM32上的移植

时间:11-10 来源:互联网 点击:

_ReadInputDataBit(TI_CC_SPI_USCIA0_GPIO, TI_CC_SPI_USCIA0_SOMI)!= RESET)

{

;

}

// Send address

SPI_I2S_SendData(SPI1, (uint16_t)(addr | TI_CCxxx0_READ_BURST));

// Wait for TXBUF ready

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

//虚拟的接收数据,用来清空接收寄存器

x = SPI_I2S_ReceiveData(SPI1);//接收数据通过SPI1

// Dummy write to read 1st data byte

SPI_I2S_SendData(SPI1, (uint16_t)0xff);//发送数据通过SPI1

// Addr byte is now being TXed, with dummy byte to follow immediately after

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

x = SPI_I2S_ReceiveData(SPI1);//接收数据通过SPI1

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

// First data byte now in RXBUF

for (i = 0; i < (count-1); i++)

{

//UCA0TXBUF = 0; //Initiate next data RX, meanwhile.&$$$$$.

SPI_I2S_SendData(SPI1, (uint16_t)0);//发送数据通过SPI1

// Store data from last data RX

buffer[i] = SPI_I2S_ReceiveData(SPI1);//接收数据通过SPI1

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

}

// Store last RX byte in buffer

buffer[count-1]= SPI_I2S_ReceiveData(SPI1);//接收数据通过SPI1

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_SET); // CS disable

}

////////////////////////////////////////////////////////////////////////////////

// 程序名 : char TI_CC_SPIReadStatus(char addr)

// 作用 : 从状态寄存器中读数,寄存器地址:"addr"

// 输入参数:char addr :指向的状态寄存器地址

// 输出参数:char :状态寄存器的值

// 说明:

//

////////////////////////////////////////////////////////////////////////////////

char TI_CC_SPIReadStatus(char addr)

{

char x;

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_RESET); // /CS enable

//Wait for CCxxxx ready

while(GPIO_ReadInputDataBit(TI_CC_SPI_USCIA0_GPIO, TI_CC_SPI_USCIA0_SOMI)!= RESET)

{

;

}

// Send address

SPI_I2S_SendData(SPI1, (uint16_t)(addr | TI_CCxxx0_READ_BURST));//发送数据通过SPI1

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

// Dummy write so we can read data

x = SPI_I2S_ReceiveData(SPI1);//接收数据通过SPI1

SPI_I2S_SendData(SPI1, (uint16_t)0xff);//发送数据通过SPI1

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

// Read data

x = SPI_I2S_ReceiveData(SPI1);//接收数据通过SPI1

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_SET); // CS disable

return x;

}

////////////////////////////////////////////////////////////////////////////////

// 程序名 : void TI_CC_SPIStrobe(char strobe)

// 作用 : 向命令寄存器写数,写入的值"strobe"

// 输入参数:char strobe :要写入的值

// 输出参数:无

// 说明:

//

////////////////////////////////////////////////////////////////////////////////

void TI_CC_SPIStrobe(char strobe)

{

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_RESET); //CS enable

// Wait for CCxxxx ready

while(GPIO_ReadInputDataBit(TI_CC_SPI_USCIA0_GPIO, TI_CC_SPI_USCIA0_SOMI)!= RESET)

{

;

}

// Send strobe

SPI_I2S_SendData(SPI1, (uint16_t)strobe);//发送数据通过SPI1

// Strobe addr is now being TXed

while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_BSY )!= RESET)//线路忙则等待

{

;

}

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_SET); //CS disable

}

////////////////////////////////////////////////////////////////////////////////

// 程序名 : void TI_CC_PowerupResetCCxxxx(void)

// 作用 : 硬复位CC芯片

// 输入参数:无

// 输出参数:无

// 说明:

//

////////////////////////////////////////////////////////////////////////////////

void TI_CC_PowerupResetCCxxxx(void)

{

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_SET); // CS disable

TI_CC_Wait(30);

GPIO_WriteBit(TI_CC_CSn_GPIO, TI_CC_CSn_PIN, Bit_RESET); //CS

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top