資源簡介
本示例基于stm32f103外設(shè)固件庫開發(fā)的AD7091驅(qū)動程序,內(nèi)涵初始化和AD獲取操作代碼。
在項目中親測可以正常運行和使用,適合參考作為二次開發(fā)。
在項目中親測可以正常運行和使用,適合參考作為二次開發(fā)。
代碼片段和文件信息
#include?“ad7091.h“
#include?“delay.h“
/**
??*?@brief??Select?AD7091:?Chip?Select?pin?low
??*/
#define?AD7091_CS_LOW()???????GPIO_ResetBits(AD7091_CS_GPIO_PORT?AD7091_CS_PIN)
/**
??*?@brief??Deselect?AD7091:?Chip?Select?pin?high
??*/
#define?AD7091_CS_HIGH()??????GPIO_SetBits(AD7091_CS_GPIO_PORT?AD7091_CS_PIN)???
/**
??*?@brief??Select?AD7091:?Chip?CONVST?pin?low
??*/
#define?AD7091_CONVST_LOW()???????GPIO_ResetBits(AD7091_CONVST_GPIO_PORT?AD7091_CONVST_PIN)
/**
??*?@brief??Deselect?AD7091:?Chip?CONVST?pin?high
??*/
#define?AD7091_CONVST_HIGH()??????GPIO_SetBits(AD7091_CONVST_GPIO_PORT?AD7091_CONVST_PIN)??
#define?AD7091_DUMMY_BYTE?0xffff
uint16_t?AD7091_SendByte(uint16_t?byte)
{
??/*!??while?(SPI_I2S_GetFlagStatus(AD7091_SPI?SPI_I2S_FLAG_TXE)?==?RESET);
??/*!??SPI_I2S_SendData(AD7091_SPI?byte);
??/*!??while?(SPI_I2S_GetFlagStatus(AD7091_SPI?SPI_I2S_FLAG_RXNE)?==?RESET);
??/*!??return?SPI_I2S_ReceiveData(AD7091_SPI);
}
uint16_t?AD7091_ReadByte(void)
{
??return?(AD7091_SendByte(AD7091_DUMMY_BYTE));
}
void?AD7091_LowLevel_Init(void)
{
??GPIO_InitTypeDef?GPIO_InitStructure;
??/*!???????and?AD7091_SPI_SCK_GPIO?Periph?clock?enable?*/
??RCC_APB2PeriphClockCmd(AD7091_CS_GPIO_CLK?|?AD7091_SPI_MOSI_GPIO_CLK?|?AD7091_SPI_MISO_GPIO_CLK?|
?????????????????????????AD7091_SPI_SCK_GPIO_CLK?|?AD7091_CONVST_GPIO_CLK?ENABLE);
??/*!??RCC_APB2PeriphClockCmd(AD7091_SPI_CLK?ENABLE);
??
??/*!??GPIO_InitStructure.GPIO_Pin?=?AD7091_SPI_SCK_PIN;
??GPIO_InitStructure.GPIO_Speed?=?GPIO_Speed_50MHz;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_AF_PP;
??GPIO_Init(AD7091_SPI_SCK_GPIO_PORT?&GPIO_InitStructure);
??/*!??GPIO_InitStructure.GPIO_Pin?=?AD7091_SPI_MOSI_PIN;
??GPIO_Init(AD7091_SPI_MOSI_GPIO_PORT?&GPIO_InitStructure);
??/*!??GPIO_InitStructure.GPIO_Pin?=?AD7091_SPI_MISO_PIN;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_IN_FLOATING;??
??GPIO_Init(AD7091_SPI_MISO_GPIO_PORT?&GPIO_InitStructure);
??
??/*!??GPIO_InitStructure.GPIO_Pin?=?AD7091_CS_PIN;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;
??GPIO_Init(AD7091_CS_GPIO_PORT?&GPIO_InitStructure);
??/*!??GPIO_InitStructure.GPIO_Pin?=?AD7091_CONVST_PIN;
??GPIO_InitStructure.GPIO_Mode?=?GPIO_Mode_Out_PP;
??GPIO_Init(AD7091_CONVST_GPIO_PORT?&GPIO_InitStructure);??
}
uint16_t?AD7091_GetSmpNormal(void)
{
#if?1
uint16_t?adc_smp;
AD7091_CONVST_HIGH();
AD7091_CONVST_LOW();
AD7091_CONVST_HIGH();
//delay<=650ns
delay_us(1);
AD7091
?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????文件???????4409??2018-06-29?06:46??AD7091\ad7091.c
?????文件???????1430??2018-05-06?21:55??AD7091\ad7091.h
?????目錄??????????0??2018-06-29?06:46??AD7091
-----------?---------??----------?-----??----
?????????????????5839????????????????????3
- 上一篇:AVR 模擬IIC總線
- 下一篇:47個過程組強(qiáng)化記憶-詳細(xì)
評論
共有 條評論