求助AD7940和AD5300的驱动程序

2019-08-14 14:38发布

用的是144脚的stm32f103zet6,外部ADC用AD7940,DAC用AD5300,哪位大神有这两个芯片的驱动程序发我一份吧,感激不尽!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
6条回答
Acuity
1楼-- · 2019-08-14 18:16
1、AD7940,就一个spi,spi代码不上了,封装好后就没配置也不需要配置了(spi 8位传输模式,全双工,高位在前);
int spi_send_recv(struct st_spi_device *spi_bus,const void *send_buff,void *recv_buff,unsigned short data_size);//发送完同时接收

u16 ad7940_read(void)
{
        u8 send_buff[2] = {0},recv_buff[2] = {0};
       
        spi_send_recv(spi1,send_buff,recv_buff,2);         
        return(recv_buff[0]<<8 | recv_buff[1])&0x3fff; //14位,最高2位无效
}
kyle2017
2楼-- · 2019-08-14 18:35
AD7940是14位的,AD5300是8位的
kyle2017
3楼-- · 2019-08-14 22:39
 精彩回答 2  元偷偷看……
正点原子
4楼-- · 2019-08-15 03:59
自己写吧
kyle2017
5楼-- · 2019-08-15 09:03
Acuity 发表于 2017-8-16 11:20
1、AD7940,就一个spi,spi代码不上了,封装好后就没配置也不需要配置了(spi 8位传输模式,全双工,高位在 ...

AD5300能帮忙写一下吗,8位的DAC,电压输出型的,谢啦!
Acuity
6楼-- · 2019-08-15 09:42
2、AD5300,spi
int spi_send(struct st_spi_device *spi_bus,const void *send_buff,unsigned short send_size); //只发送
/*
mode范围0—3
*/
void ad5300_set(u8 mode,u8 out)
{
        u16 send_data;
        u8 send_buff[2];

        send_data = ((mode << 8) | out)<<4;   //这个逻辑手册,如下图
        send_buff[0] = (send_data >> 8)&0xff; //高位在前
        send_buff[1] = send_data & 0xff;
        spi_send(spi1,send_buff,2);
}

一周热门 更多>