资源简介
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
相关资源
- 基于STM32F4x9的LCD显示
- VS1053B编解码器的VDR分布式声音采集卡
- stm32的DAC播放音乐文件
- STM32+TMC5160代码电路图.rar
- 基于STM32的深海钻机甲板控制系统
- stm32f103.SchDoc
- STM32F103 USART+DMA
- DMA+stm32 407.zip
- 4_USART串口通信(空闲中断+DMA.zip
- stm32f105-usart-DMA收发demo
- STM32F042F6P6 Uart12DMA;发送中断接收
- 基于STM32的嵌入式双目图像采集系统设
- 基于STM32F103C8单片机的晶联讯电子JL
- 基于STM32的温湿度检测系统实现
- stm32F4+w5300
- 14284969_《STM32单片机应用与全案例实践
-
ST-li
nk-V2的SWD仿真使用方法.docx - 安富莱STM32开发板资料
- STM32F103实现OV7670摄像头显示
- STM32F207学习板例程
- STM32F103VCT6TR - High-density performance lin
- STM32 SRAM启动的 KeiL 配置
- STM32的IAP-Bootloader程序
- STM32例程之Bootloader
- stm32f103 虚拟U盘,调试成功的
- 基于stm32F103vct6的SD卡FATFS文件系统移植
- STM32F030从机中断接收的iic代码,附带
- FreeModbus_Slave+STM32F407+USART2代码亲测可
- STM32+1602液晶proteus仿真.zip
- STM32循迹小车
评论
共有 条评论