資源簡介
CS5532讀寫程序,STM32控制,實測可行

代碼片段和文件信息
?/**
??******************************************************************************
??*?@file????bsp_cs5532_spi.c
??*?@author??zp
??*?@version?V1.0
??*?@date????2014-xx-xx
??*?@brief???cs5532?底層應用函數bsp?
??******************************************************************************
??*?@attention
??*
??*?平臺:?高鐵建鋼筋儀
??*?
??*
??******************************************************************************
??*/
??
#include?“bsp_cs5532_IO.h“
/*?Private?typedef?-----------------------------------------------------------*/
#define?Dummy_Byte????????????????0xFF
/**
??*?@brief??CS5532?端口配置
??*?@param??無??
??*?@retval?無
??*/
void?CS5532_GPIO_Init(void)
{
????GPIO_InitTypeDef?GPIO_InitStructure;??????????????/*定義一個GPIO_InitTypeDef類型的結構體*/?
????RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO?|?CS5532_GPIO_CLK?ENABLE);?/*開啟GPIOB的外設時鐘,復用了JTAG口*/
????GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable??ENABLE);??//禁用JTAG,可以使用SW
????GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
????GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;?????//推挽輸出???
????GPIO_InitStructure.GPIO_Pin?=?CS5532_CS_PIN?|?CS5532_SCLK_PIN?|?CS5532_SDI_PIN;
????GPIO_Init(CS5532_GPIO_PORT?&GPIO_InitStructure);
????GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IPU;?????//上拉輸入
????GPIO_InitStructure.GPIO_Pin?=?CS5532_SDO_PIN;
????GPIO_Init(CS5532_GPIO_PORT?&GPIO_InitStructure);
????CS5532_CS_HIGH();????//端口全部置高
????CS5532_SCLK_HIGH();
????CS5532_SDI_HIGH();
????CS5532_SDO_HIGH();??
}
/**
??*?@brief??CS5532?簡單的延時函數
??*?@param??__IO?uint32_t?nCount
??*?@retval?無
??*/
static?void?CS5532_Delay(__IO?uint32_t?nCount) ?//簡單的延時函數
{
for(;?nCount?!=?0;?nCount--);
}
/**
??*?@brief??CS5532?發送單個字節
??*?@param??unsigned?char?byte?
??*?@retval?無
??*/
void?CS5532_SendByte(unsigned?char?byte)
{
????unsigned?char?i;
????CS5532_SCLK_LOW();
????CS5532_CS_LOW();
????for(i?=?0;i?10;i?++)??//延時50ns
????????__nop();
????for(i?=?0;i?8;i?++)
????{
????????if((byte?<????????????CS5532_SDI_HIGH();
????????else?????????????
????????????CS5532_SDI_LOW();
????????__nop();__nop();???????//延時50ns?
????????CS5532_SCLK_HIGH();??
????????__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();//延時?>?250ns?
????????CS5532_SCLK_LOW();
????}
????CS5532_SDI_HIGH();
}
/**
??*?@brief??CS5532?發送配置命令及配置數據
??*?@param??command?8bit命令,?reg:?32bit配置信息?
??*?@retval?無
??*/
void?CS5532_Send_REG(u8?commandu32?reg)
{
????unsigned?char?ik;
????CS5532_SCLK_LOW();?
????CS5532_CS_LOW();
????for(k?=?0;k?3;k?++)??//延時50ns
????????__nop();
????for(i?=?0;i?8;i?++)??????//先發送命令
????{
????????if((command?<????????????CS5532_SDI_HIGH();
????????else?????????????
????????????CS5532_SDI_LOW();
????????CS5532_SCLK_HIGH();??
????????__nop();?__nop();__nop();__nop();__nop();__nop();__nop();__nop();//延時?>?250ns?
????????CS5532_SCLK_LOW();
????}
????for(i?=?0;i?32;i?++)????//發送32位寄存器
????{
????????i
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4810??2014-08-12?13:02??CS5532IO\bsp_cs5532_IO.h
?????文件???????7271??2014-08-29?14:31??CS5532IO\bsp_cs5532_IO.c
?????目錄??????????0??2014-06-04?20:56??CS5532IO
-----------?---------??----------?-----??----
????????????????12081????????????????????3
評論
共有 條評論