tud3tud3 发表于 2013-12-11 11:47:47

哪位用过AA88347或者MB88347这颗8bit8通道串行D/A转换器

目前設置好SPI1和設定送出ADD和DATA看是還是弄不好
可以請點一下嗎?
附上問題:它是12位数据,高四位是地址,选择那个通道,低8位是数据,像这种情况是2个字节分开传输还是作一个字传输,还有它的高四位怎么处理?

steaven2000 发表于 2013-12-12 13:33:22

不就是个简单的SPI传输嘛。

tud3tud3 发表于 2013-12-17 09:20:57

是這樣喔!
抱歉,剛開始學習
因為我不清楚spi的送資料過程~
請問一下~我送資料有問題,還是設定腳位有問題
因為要7個bit我不知道要怎麼設定?
void write_byte(u4 add1,u8 val)
{
   SPI_I2S_SendData(SPI1,add1<<4|val|add2<<8);
while(SPI_I2S_GetFlagStatus(SPI1,SPI_I2S_FLAG_TXE)==RESET);
}
RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
void SPI_Configuration(void)//饜离SPI諉諳   
{
SPI_InitTypeDefSPI_InitStructure;
// SPI1配置
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex ;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master ;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b ;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low ;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_1Edge ;
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft ;
//SPI波特率分頻設置:4M
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_256 ;
//SPI設置成LSB模式
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB ;
SPI_InitStructure.SPI_CRCPolynomial = 7 ;
SPI_Init( SPI1, &SPI_InitStructure ) ;
//?動SPI
SPI_Cmd(SPI1,ENABLE);
}
void GPIO_Configuration(void)
{
    GPIO_InitTypeDef GPIO_InitStructure;
   
//配置SPI1引腳:SCK, MISO and MOSI
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5| GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init( GPIOA, &GPIO_InitStructure );
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP ;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz ;
GPIO_Init( GPIOB, &GPIO_InitStructure );
}
int main(void){

write_byte(0x3,0x00);
}
页: [1]
查看完整版本: 哪位用过AA88347或者MB88347这颗8bit8通道串行D/A转换器