资源简介
使用STM32F103写的DAC8552的16位DA驱动,调试正常!
代码片段和文件信息
#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
- 上一篇:BosonNetsim6.0使用教程
- 下一篇:STM32F103测频率
相关资源
- STM32F103测频率
- STM32 4*4按键
- STM32全系列芯片封装库,最齐全封装库
- STM32F407最小系统板(SWD口)
- STM32F103C8T6 LCD12864 串行通信
- STM32驱动ht1621b显示LCD
- STM32 F4系列所有原理图及PCB封装库
- cubeMX视频教程stm32hal库函数cubemx实战讲
- SPWM逆变器stm32例程及电路图仿真.zip
- MPU6050(STM32 DMP).rar
- STM32F407 485 MODBUS
- STM32 hal库操作ESP8266
- STM32 STM32F103C8T6 读取DS18B20温度数据例
- STM32 STM32F103C8T6 CAN从机+4DI2DO 硬件设计
- STM32外部计数器程序
- STMicroelectronics STM32及STM8全系列Altium
- 基于STM32cubeMX,STM32F103C8T6的PWM输出实
- US100超声波代码stm32
- 基于STM32电力数据采集系统的设计
- STM32 之DHT11驱动程序
- Arduino STM32 平衡小车之家平衡小车源码
- DS18B20仿真
- STM32串口封装源码,可直接调用
- STM32L4_硬件SPI配置_LL库版.rar
- STM 32 Nucleo H743zi芯片引脚图STM32 H732Z
- STM32的USART串口查询方式(库函数)
- STM32的PS2鼠标程序,亲测可用
- STM32F103RCT6使用DS1302时钟模块
- stm32F407光电编码器代码
- 音频信号FFT变换后节拍检测的软件.
评论
共有 条评论