1 В избранное 0 Ответвления 0

OSCHINA-MIRROR/OliverKung-stm32_drive_library

Присоединиться к Gitlife
Откройте для себя и примите участие в публичных проектах с открытым исходным кодом с участием более 10 миллионов разработчиков. Приватные репозитории также полностью бесплатны :)
Присоединиться бесплатно
Клонировать/Скачать
spi_dac8562.c 1.4 КБ
Копировать Редактировать Web IDE Исходные данные Просмотреть построчно История
OliverKung Отправлено 5 лет назад a45fb64
#include "spi_dac8562.h"
void delay_us(uint32_t time)
{
uint32_t i;
for(i=0;i<time*65;i++)
{
continue;
}
}
void DAC856x_Init(uint8_t DAC_Num)
{
DAC856x_Write_Data(0x28,0x0001,DAC_Num);
DAC856x_Write_Data(0x20,0x0003,DAC_Num);
DAC856x_Write_Data(0x38,0x0001,DAC_Num);
DAC856x_Write_Data(0x1F,0x1111,DAC_Num);//初始化DAC的代码,在完成HAL的初始化之后调用
}
void DAC856x_SetVoltage(uint8_t DAC_Num,uint8_t Channel,double voltage)
{
uint16_t vol_reg;
vol_reg=(uint16_t)((voltage/30.0)*65535);//变压比,需要手动根据输出幅度范围进行修改
switch (Channel)//对通道的判断,8562拥有两个输出的通道.
{
case ChannelA:
DAC856x_Write_Data(0x19,vol_reg,DAC_Num);
break;
case ChannelB:
DAC856x_Write_Data(0x18,vol_reg,DAC_Num);
break;
default:
break;
}
}
void DAC856x_Write_Data(uint8_t command,uint16_t data,uint8_t DAC_Num)
{
int i;
switch (DAC_Num)//选择DAC通道
{
case DAC1:
DAC8562_SYNC_1(1);
delay_us(1);
DAC8562_SYNC_1(0);
break;
case DAC2:
DAC8562_SYNC_2(1);
delay_us(1);
DAC8562_SYNC_2(0);
break;
case DAC3:
DAC8562_SYNC_3(1);
delay_us(1);
DAC8562_SYNC_3(0);
break;
default:
break;
}
for(i=7;i>=0;i--) //写入指令与地址
{
DAC8562_SCLK(1);
delay_us(10);
DAC8562_DIN((command>>i)&0x01);
delay_us(10);
DAC8562_SCLK(0);
delay_us(10);
}
for(i=15;i>=0;i--) //写入相应的数据
{
DAC8562_SCLK(1);
delay_us(10);
DAC8562_DIN((data>>i)&0x01);
delay_us(10);
DAC8562_SCLK(0);
delay_us(10);
}
}

Опубликовать ( 0 )

Вы можете оставить комментарий после Вход в систему

1
https://gitlife.ru/oschina-mirror/OliverKung-stm32_drive_library.git
git@gitlife.ru:oschina-mirror/OliverKung-stm32_drive_library.git
oschina-mirror
OliverKung-stm32_drive_library
OliverKung-stm32_drive_library
master