内容发布更新时间 : 2024/12/22 22:44:46星期一 下面是文章的全部内容请认真阅读。
#define CS5530_GLOBALS #include \ /*
*-----------------------------------------------------------------------------------------
-----------------------------------------------
* 函数原型:void SPI_CtrlPin_Init(void) * 函数功能:配置IO口 * 输入参数:无 * 返 回 值:无
*-----------------------------------------------------------------------------------------
----------------------------------------------- */
void SPI_Init(void) { MCU_CSCLK_CS5530=0; //SPI_SCK_DAT(0); MCU_CS_CS5530=1; //SPI_CS_DAT(1); //取消片选 MCU_SDI_CS5530=0; //SPI_MOSI_DAT(0); } /*
*-----------------------------------------------------------------------------------------
-----------------------------------------------
* 函数原型:void SPI_WriteOneByte(INT8U dat) * 函数功能:向SPI从设备发送一个字节的数据 * 输入参数:dat:将要发送给从设备的单字节数据 * 返 回 值:无
*-----------------------------------------------------------------------------------------
----------------------------------------------- */
void SPI_WriteOneByte(INT8U dat) { INT8U i; MCU_CSCLK_CS5530=0; for(i=0; i<8; i++) //aa {
if(dat & 0x80) { MCU_SDI_CS5530=1;//SPI_MOSI_DAT(1); } else { MCU_SDI_CS5530=0; //SPI_MOSI_DAT(0); } _nop_(); _nop_(); MCU_CSCLK_CS5530=1; //SPI_SCK_DAT(1); _nop_(); _nop_(); MCU_CSCLK_CS5530=0; //SPI_SCK_DAT(0); dat = dat<<1; } // MCU_SDI_CS5530=0; //SPI_MOSI_DAT(0); // SPI_CS_DAT(1) ; } /*
*-----------------------------------------------------------------------------------------
-----------------------------------------------
* 函数原型:INT8U SPI_ReadOneByte(void) * 函数功能:从从设备读取一个字节的数据 * 输入参数:无
* 返 回 值:返回从从设备读取的数据
*-----------------------------------------------------------------------------------------
----------------------------------------------- */
INT8U SPI_ReadOneByte(void) {
INT8U k,i,dat = 0;
MCU_CS_CS5530=0;//SPI_CS_DAT(0); ; MCU_SDI_CS5530=0; for(i=0; i<8; i++) { MCU_CSCLK_CS5530=1; //SPI_SCK_DAT(1); _nop_(); _nop_(); k=MCU_SDO_CS5530;
if(k) //if(SPI_MISO_READ()) { dat|=(0x80>>i); } else { } MCU_CSCLK_CS5530=0; //SPI_SCK_DAT(0); _nop_(); _nop_(); }
return dat;
// SPI_CS_DAT(1) ; } /*
*-----------------------------------------------------------------------------------------
-----------------------------------------------
* 函数原型:void reset_CS5530(void) * 函数功能:初始化串口 * 输入参数:无 * 返 回 值:无
*-----------------------------------------------------------------------------------------
----------------------------------------------- */
void Reset_CS5530(void) { INT8U i; INT32U temp; FlashWatchDog( ); CS5530StartADbit=0; MCU_CS_CS5530 = 1; MiniDelay(10000); MCU_CS_CS5530 = 0; FlashWatchDog( ); MiniDelay(10000); MCU_SDI_CS5530 = 0; MCU_SDO_CS5530 = 1; FlashWatchDog( );