资源简介
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
相关资源
- STM32F103RC+ADC+DMA多通道采样LCD显示
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
评论
共有 条评论