- MCP4922 :12 位双通道 DAC
时序
引脚
电压输出
寄存器
程序
#include "MCP4922.H"
//========================================================================
// 描述: SPI初始化.
// 参数: none.
// 返回: none.
//========================================================================
void MCP4922_init()
{
GPIO_InitTypeDef GPIO_InitStructure; //结构定义
GPIO_InitStructure.Pin = GPIO_Pin_0|GPIO_Pin_1 |GPIO_Pin_2|GPIO_Pin_3 ; //指定要初始化的IO, GPIO_Pin_0 ~ GPIO_Pin_7
GPIO_InitStructure.Mode = GPIO_OUT_PP; //指定IO的输入或输出方式,GPIO_PullUp,GPIO_HighZ,GPIO_OUT_OD,GPIO_OUT_PP
GPIO_Inilize(GPIO_P2,&GPIO_InitStructure); //初始化
// SOFTSPI_SCK_MODE;
// SOFTSPI_MISO_MODE;
// SOFTSPI_MOSI_MODE;
MCP4922_CS = 1;
MCP4922_LD = 1;
SOFTSPI_SCK_PIN = 0; //set clock to low initial state
}
//========================================================================
// 描述: SPI写入一个字节后读取一个字节数据.
// 参数: none.
// 返回: none.
//========================================================================
u8 softspi_wr_data(u16 dat)
{
u16 datavalue=0,i,wr_data;
wr_data = dat;
#if SOFTSPI_CPHA==0