資源簡介
STM32驅動AD5422,親測可用,AD5412同樣適用

代碼片段和文件信息
/***************************************************************************
?Author????????:?FangZheng?-?CAST
?Date??????????:?Jun?12th?2012
?File??????????:?ad5422_IO.c
?Hardware??????:?STM32?and?AD5422
?Description???:?Use?the?GPIO?to?simulate?the?SPI?communication?of?AD5422
***************************************************************************/
#include?“stm32f10x_gpio.h“
#include?“ad5422_io.h“
?
??#define?SET_CLEAR() GPIOC->BSRR??=?GPIO_Pin_8 //PC8->CLEAR
??#define?CLR_CLEAR() GPIOC->BRR???=?GPIO_Pin_8
??#define?SET_LATCH() GPIOC->BSRR??=?GPIO_Pin_3 //PC3->LATCH
??#define?CLR_LATCH() GPIOC->BRR???=?GPIO_Pin_3
??#define?SET_SCL() GPIOC->BSRR??=?GPIO_Pin_2 //PC2->SCLK
??#define?CLR_SCL() GPIOC->BRR???=?GPIO_Pin_2
??#define?SET_SDO() GPIOC->BSRR??=?GPIO_Pin_1 //PC1->SDIN
??#define?CLR_SDO() GPIOC->BRR???=?GPIO_Pin_1
??#define?GET_SDI()?????GPIO_ReadInputDataBit(GPIOC?GPIO_Pin_0)?//PC0->SDO
void?ad54x2_delay?(int?length)
{
while?(length?>0)
???? length--;
}
//---------------------------------
//void?WriteToAD5422(unsigned?char?countunsigned?char?*buf);
//---------------------------------
//Function?that?writes?to?the?AD5422?via?the?SPI?port.?
//--------------------------------------------------------------------------------
void?WriteToAD5422(unsigned?char?countunsigned?char?*buf)
{
unsigned char ValueToWrite?=?0;
????unsigned char i?=?0;
unsigned char j?=?0;
CLR_LATCH();
for?(?i=count;i>0;i--?)
? {
? ValueToWrite?= *(buf+i-1);
for?(j=0;?j<8;?j++)
{
CLR_SCL();
if(0x80?==?(ValueToWrite?&?0x80))
{
SET_SDO(); ????//Send?one?to?SDIN?pin?of?AD5422
}
else
{
CLR_SDO(); ????//Send?zero?to?SDIN?pin?of?AD5422
}
?
ad54x2_delay(1);
SET_SCL();
ad54x2_delay(1);
ValueToWrite?<<=?1; //Rotate?data
}
}
CLR_SCL();
ad54x2_delay(1);
SET_LATCH();
ad54x2_delay(20);
}
//---------------------------------
//ReadFromAD5422();
//---------------------------------
//Function?that?reads?from?the?AD5422?via?the?SPI?port.?
//--------------------------------------------------------------------------------
void?ReadFromAD5422(unsigned?char?countunsigned?char?*buf)
{
unsigned char i?=?0;
unsigned char j?=?0;
unsigned char?? iTemp?=?0;
unsigned char?? RotateData?=?0;
CLR_LATCH();
for(j=count;?j>0;?j--)
{
for(i=0;?i<8;?i++)
{
????CLR_SCL();
RotateData?<<=?1; //Rotate?data
ad54x2_delay(1);
CLR_SDO(); //Write?a?nop?condition?when?read?the?data.?
iTemp?=?GET_SDI(); //Read?SDO?of?AD5422
SET_SCL();
if(iTemp?==?1)
{
RotateData?|=?1;
}
ad54x2_delay(1);
}
*(buf+j-1)=?RotateData;
}
CLR_SCL();
ad54x2_delay(1); ?
SET_LATCH();
ad54x2_delay(20);
}?
//---------------------------------
//ReadFromAD5422();
//---------------------------------
//?
//----------------------------------------------------------
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4728??2012-06-12?09:57??AD5422test\GPIO\GPIO.opt.bak
?????文件????????152??2009-10-20?11:15??AD5422test\GPIO\GPIO.plg
?????文件???????4929??2009-10-20?11:31??AD5422test\GPIO\GPIO.Uv2.bak
????.......?????77847??2013-02-19?16:21??AD5422test\GPIO\GPIO.uvopt
????.......?????56984??2013-02-19?16:18??AD5422test\GPIO\GPIO.uvproj
?????文件???????4728??2012-06-12?09:14??AD5422test\GPIO\GPIO_Opt.Bak
?????文件?????????71??2009-10-20?11:15??AD5422test\GPIO\GPIO_Target?1.dep
?????文件??????????0??2009-10-20?11:15??AD5422test\GPIO\GPIO_Uv2.Bak
????.......?????77849??2013-02-19?16:21??AD5422test\GPIO\GPIO_uvopt.bak
????.......?????60642??2012-06-15?09:37??AD5422test\GPIO\GPIO_uvproj.bak
?????文件??????18651??2012-09-17?21:45??AD5422test\GPIO\Jli
?????文件?????????19??2012-09-17?21:44??AD5422test\GPIO\Obj\ExtDll.iex
?????文件????????270??2013-02-19?16:21??AD5422test\GPIO\Obj\GPIO.plg
?????文件????????479??2012-06-12?09:59??AD5422test\GPIO\Obj\GPIO.sct
?????文件???????1493??2013-02-19?16:20??AD5422test\GPIO\Obj\GPIO.tra
?????文件????????479??2012-06-12?08:41??AD5422test\GPIO\Obj\GPIO_sct.Bak
?????文件???????3685??2013-02-19?16:18??AD5422test\GPIO\Source\AD542X\ad5422_IO.c
?????文件???????2217??2013-02-19?16:19??AD5422test\GPIO\Source\AD542X\ad5422_IO.h
?????文件??????25286??2009-06-23?15:46??AD5422test\GPIO\Source\App\font.h
?????文件??????20605??2009-10-16?15:23??AD5422test\GPIO\Source\App\GLCD.c
?????文件???????3985??2009-08-28?15:49??AD5422test\GPIO\Source\App\GLCD.h
?????文件???????4691??2013-02-19?16:20??AD5422test\GPIO\Source\App\main.c
?????文件???????3125??2009-10-16?17:05??AD5422test\GPIO\Source\App\stm32f10x_conf.h
?????文件???????4285??2009-08-28?16:54??AD5422test\GPIO\Source\App\stm32f10x_it.c
?????文件???????1976??2009-06-23?13:55??AD5422test\GPIO\Source\App\stm32f10x_it.h
?????文件???????1171??2009-10-16?15:51??AD5422test\GPIO\Source\App\USART.c
?????文件????????245??2009-10-16?15:50??AD5422test\GPIO\Source\App\USART.h
?????文件??????17206??2009-06-23?13:55??AD5422test\GPIO\Source\CMSIS\Core\CM3\core_cm3.c
?????文件??????46533??2009-06-23?13:55??AD5422test\GPIO\Source\CMSIS\Core\CM3\core_cm3.h
?????文件??????15600??2009-06-23?13:55??AD5422test\GPIO\Source\CMSIS\Core\CM3\startup\arm\startup_stm32f10x_cl.s
............此處省略81個文件信息
- 上一篇:工行銀企互聯NC模式制作PDF電子回單
- 下一篇:rainmeter 課程表.rar
評論
共有 條評論