资源简介
STm32f103写的DAC8552的驱动程序,经过实际测试,是可以用的

代码片段和文件信息
#include “stm32f10x.h“
#include “DAC8552.h“
uint16_t Zero_Voltage_OutPut = No_Impedance;
uint16_t LOAD_Channel = Load_AB;
uint16_t Channel_A_OutPut=32767 Channel_B_OutPut=16384;//max=65535
void DAC8552_GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
GPIO_SetBits(GPIOE GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4);
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3 | GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;
GPIO_Init(GPIOE &GPIO_InitStructure);
}
void DAC8552_RCC_Configuration(void)
{
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE ENABLE);
}
//------------------------------------------------------------------------------
//函数名称:输出DAC
//函数功能:输出设定的电压
//参数传递:无
//------------------------------------------------------------------------------
void DAC8552_Out_Put_Voltage(void)
{
DAC8552_DA_convert(Channel_A_OutPut Channel_A);
DAC8552_DA_convert(Channel_B_OutPut Channel_B);
}
//------------------------------------------------------------------------------
//函数名称:延时
//函数功能:延时
//参数传递:无
//------------------------------------------------------------------------------
void DAC8552_delay1ms (uint16_t n)
{
while(n--);
}
//------------------------------------------------------------------------------
//函数名称:写数据
//函数功能:送0的子程序
//参数传递:无
//------------------------------------------------------------------------------
void DAC8552_SEND_0(void)
{
DIN_0;
//DAC8552_delay1ms(20);
SCLK_1;
//DAC8552_delay1ms(20);
SCLK_0;
//DAC8552_delay1ms(20);
}
//------------------------------------------------------------------------------
//函数名称:写数据
//函数功能:送1的子程序
//参数传递:无
//------------------------------------------------------------------------------
void DAC8552_SEND_1(void)
{
DIN_1;
//DAC8552_delay1ms(20);
SCLK_1;
//DAC8552_delay1ms(20);
SCLK_0;
//DAC8552_delay1ms(20);
}
//------------------------------------------------------------------------------
//函数名称:写入DA输出寄存器的数据
//函数功能:D/A转换的子程序
//参数传递:unsigned int datasheet 输出的电压
//------------------------------------------------------------------------------
void DAC8552_DA_convert(uint16_t datasheet uint16_t channel)
{
uint16_t i;
uint16_t abm;
m=((Zero_Voltage_OutPut|channel)|LOAD_Channel); //在此处设置参考电压、输出通道以及输出阻抗大小
b=datasheet&0x00ff;
a=datasheet>>8; //取高8位
SYNC_1;
SYNC_0;
for(i=0;i<8;i++)
{
if((m&0x80)==0)
{DAC8552_SEND_0();}
else
{DAC8552_SEND_1();}
m<<=1;
}
for(i=0;i<8;i++)
{
if((a&0x80)==0)
{DAC8552_SEND_0();}
else
{DAC8552_SEND_1();}
a<<=1;
}
for(i=0;i<8;i++)
{
if((b&0x80)==0)
{DAC8552_SEND_0();}
else
{DAC8552_SEND_1();}
b<<=1;
}
//DAC8552_delay1ms(100);
SYNC_1;
}
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 3143 2013-07-25 20:02 User\DAC8552.c
文件 1697 2013-07-25 19:15 User\DAC8552.h
文件 238 2013-07-25 19:36 User\main.c
文件 22693 2013-07-11 16:49 User\stm32f10x_it.c
文件 2086 2011-04-04 19:03 User\stm32f10x_it.h
目录 0 2013-07-25 20:02 User
----------- --------- ---------- ----- ----
29857 6
- 上一篇:IMX385对接海思原理图
- 下一篇:基于SSH框架的BookShop网上书店实现
相关资源
- I2C读写AT24C02 基于STM32F103 cube116540
- 基于stm32f103ve的程序——跑马灯实验
- 基于STM32RCT6的步进电机驱动程序
- stm32f407上的两个can发送和接收例程
- STM32 led 时钟
- STM32 2.4G通信例程
- 直流无刷电机方波驱动 stm32 例程代码
- STM32中文资料
- STM32蓝牙和串口程序
- STM32f103超声波模块例程
- stm32f103c8t6 4 oled.rar
- stm32f030 IAP Demo(原创)
- STM32基于rt_thread操作系统的SDHC卡文件
- NRF24L01实现51与STM32双向通讯
- STM32F103 串口程序(完整版)
- stm32 ds18b20 温度传感器 测试通过
- stm32官方例程
- STM32F103定时器中断程序
- [免费]基于stm32f103ze 的OLED驱动代码
- STM32F103RBT6驱动UC1698控制芯片的160160黑
- STM32F103 DS18B20 V3.5.0固件库驱动程序工
- STM32定时器使用入门。看了这个程序会
- SIM908 SDIO FSMC STM32 FIFO
- STM32F103 CC2500完整驱动(模拟SPI)
- AD7606采集程序
- stm32 用SPI 方式读写 SDHC
- stm32通过DMA方式采集ADC数据
- 意法半导体STM全系列微控制器STM32ST
- 基于STM32芯片的SX1278 驱动 LORA.rar
- STM32的PCB封装库,以及原理图库,48
评论
共有 条评论