最近使用了MCP3208这款芯片,附上驱动代码:
u16 mcp_getAD(u8 channel)
{
u8 i=0;
//u16 temp= ((u16)channel|0x0018)<<4;
u16 temp= 0x0F80;
//0000 11 11 1 000 0000
u16 resualt=0;
//u8 temp1=0x06|(channel>>2);
//u8 temp2=channel<<6;
//temp=
GPIO_ResetBits(mcp_Port,mcp_CS);//CS=0
//
GPIO_ResetBits(mcp_Port,mcp_CLK);//CLK=0
delay_us(20);
for(i=0;i<10;i++)
{
GPIO_SetBits(mcp_Port,mcp_CLK);//CLK=1
delay_us(20);
GPIO_ResetBits(mcp_Port,mcp_CLK);//CLK=0
if(temp&0x8000)
GPIO_SetBits(mcp_Port,mcp_DOUT);//DOUT=1
else
GPIO_ResetBits(mcp_Port,mcp_DOUT);//DOUT=0
delay_us(20);
temp<<=1;
}
GPIO_SetBits(mcp_Port,mcp_CLK);//CLK=1
delay_us(20);
GPIO_ResetBits(mcp_Port,mcp_CLK);//CLK=0
delay_us(20);
GPIO_SetBits(mcp_Port,mcp_CLK);//CLK=1
delay_us(20