controller-pcba/User/driver/DAC8568.h

62 lines
2.7 KiB
C

#include "stm32f4xx_hal.h" // 添加HAL库头文件
#include "main.h"
/************************DA8568寄存器SR的值*****************************/
#define PrefixControlbyte 0x03//前缀控制字节
#define AddressOutA 0x0//通道A地址
#define AddressOutB 0x1//通道B地址
#define AddressOutC 0x2//通道C地址
#define AddressOutD 0x3//通道D地址
#define AddressOutE 0x4//通道E地址
#define AddressOutF 0x5//通道F地址
#define AddressOutG 0x6//通道G地址
#define AddressOutH 0x7//通道H地址
#define Featurebyte 0x0//特征字节
/*****DA8568寄存器SR的值-结尾*************************************/
/****************************DAC8568命令************************/
#define SETUP_INTERNAL_REGISTER 0
#define POWER_UP 1
#define RESET 2
/*****DAC8568命令-结尾*******************************************/
//---------------------------------------- Pin definition
//---------------------------------------- Command definition
#define DAC8568_EN_INTER_REF_STATIC 0x08000001
#define DAC8568_WRITE_UPDATE_SEL_DAC 0x03000000
//---------------------------------------- Reference Voltage
#define DAC8568_REF_VOLTAGE 2.5
void DAC8568_Init(void);
void DAC8568_Write_Update_Sel_DAC(uint32_t ChannelNum, uint32_t DACValue);
// #define DAC8568_SYNC_H GPIO_SetBits(GPIOA,GPIO_Pin_15)
// #define DAC8568_SYNC_L GPIO_ResetBits(GPIOA,GPIO_Pin_15)
// #define DAC8568_SCLK_H GPIO_SetBits(GPIOC,GPIO_Pin_10)
// #define DAC8568_SCLK_L GPIO_ResetBits(GPIOC,GPIO_Pin_10)
// #define DAC8568_DIN_H GPIO_SetBits(GPIOC,GPIO_Pin_12)
// #define DAC8568_DIN_L GPIO_ResetBits(GPIOC,GPIO_Pin_12)
//引脚拉高拉低
#define DAC8568_CS_H HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_SET)
#define DAC8568_CS_L HAL_GPIO_WritePin(DAC8568_CS_GPIO_Port, DAC8568_CS_Pin, GPIO_PIN_RESET)
#define DAC8568_SCLK_H HAL_GPIO_WritePin(DAC8568_SCLK_GPIO_Port, DAC8568_SCLK_Pin, GPIO_PIN_SET)
#define DAC8568_SCLK_L HAL_GPIO_WritePin(DAC8568_SCLK_GPIO_Port, DAC8568_SCLK_Pin, GPIO_PIN_RESET)
#define DAC8568_DIN_H HAL_GPIO_WritePin(DAC8568_DIN_GPIO_Port, DAC8568_DIN_Pin, GPIO_PIN_SET)
#define DAC8568_DIN_L HAL_GPIO_WritePin(DAC8568_DIN_GPIO_Port, DAC8568_DIN_Pin, GPIO_PIN_RESET)
#define DAC8568_LD_H HAL_GPIO_WritePin(DAC8568_LD_GPIO_Port, DAC8568_LD_Pin, GPIO_PIN_SET)
#define DAC8568_LD_L HAL_GPIO_WritePin(DAC8568_LD_GPIO_Port, DAC8568_LD_Pin, GPIO_PIN_RESET)
void dac8568_init(void);
void dac8568_set_voltage(unsigned char mCh,float mVol);
void SPI_SendByte(uint8_t m);
void DAC8568_Write_passageway(uint8_t Addressbyte, uint16_t Datashort);
void DAC8568_Write_Command(uint8_t command);
void dac8568_set_voltage(unsigned char mCh, float mVol);
void dac8568_spi_init(void);
void DAC8568_Init(void);
void dac8568_output_ch0_1v5(void);