当前位置: 首页 > news >正文

携程旅游网站建设的定位免费网站模板网

携程旅游网站建设的定位,免费网站模板网,网店运营策划方案,外企网站建设公司排名DACx0502 说明 16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。 DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流…

DACx0502 说明

16 位 DAC80502、14 位 DAC70502 和 12 位DAC60502 (DACx0502) 数模转换器 (DAC) 均为具有电压输出的高精度、低功耗器件。

DACx0502 线性度小于 1LSB。凭借高精度和微型封装特性,DACx0502 非常适合以下 应用: 增益和失调电压校准、电流或电压设置点设定和电源控制。这些器件包括一个 2.5V、5ppm/°C 内部基准,可提供 1.25V、2.5V 或 5V 的满量程输出电压范围。ACx0502 采用了上电复位电路,可确保 DAC 输出根据 RSTSEL 引脚的状态以零电平或中间电平上电,并在向器件写入有
效代码之前一直保持该电平。

DACx0502 的数字接口可通过 SPI2C 引脚配置为 SPI或 I2C 模式。在 SPI 模式下,DACx0502 使用一个在高达 50MHz 的时钟频率下运行的通用 3 线制串行接口。在 I2C 模式下,DACx0502 支持标准 (100kbps)、快速 (400kbps) 和快速+ (1.0Mbps) 工作模式。

DACx0502 功能方框图

在这里插入图片描述

DACx0502 引脚配置和功能

在这里插入图片描述

DACx0502 驱动模式

  • SPI 或 IIC

在这里插入图片描述

DACx0502 寄存器映射

在这里插入图片描述

测试平台

  • 测试平台:STM32F103ZET6

  • 测试芯片:DAC60502

驱动及应用示例

  • myiic.c
#include "myiic.h"
#include "delay.h"// 初始化IIC
void IIC_Init(void)
{					     RCC->APB2ENR|=1<<3;GPIOB->CRL&=0X00FFFFFF;GPIOB->CRL|=0X33000000;	   GPIOB->ODR|=3<<6;
}
// 产生IIC起始信号
void IIC_Start(void)
{SDA_OUT();IIC_SDA=1;	  	  IIC_SCL=1;delay_us(4);IIC_SDA=0;delay_us(4);IIC_SCL=0;
}	  
// 产生IIC停止信号
void IIC_Stop(void)
{SDA_OUT();IIC_SCL=0;IIC_SDA=0;delay_us(4);IIC_SCL=1; IIC_SDA=1;delay_us(4);
}
// 等待应答信号到来
// 返回值:1,接收应答失败
//        0,接收应答成功
uint8_t IIC_Wait_Ack(void)
{uint8_t ucErrTime=0;SDA_IN();IIC_SDA=1;delay_us(1);	   IIC_SCL=1;delay_us(1);	 while(READ_SDA){ucErrTime++;if(ucErrTime>250){IIC_Stop();return 1;}}IIC_SCL=0;return 0;  
} 
// 产生ACK应答
void IIC_Ack(void)
{IIC_SCL=0;SDA_OUT();IIC_SDA=0;delay_us(2);IIC_SCL=1;delay_us(2);IIC_SCL=0;
}
// 不产生ACK应答		    
void IIC_NAck(void)
{IIC_SCL=0;SDA_OUT();IIC_SDA=1;delay_us(2);IIC_SCL=1;delay_us(2);IIC_SCL=0;
}
// IIC写一个字节		  
void IIC_Write_Byte(uint8_t txd)
{                        uint8_t t;   SDA_OUT(); 	    IIC_SCL=0;for(t=0;t<8;t++){              IIC_SDA=(txd&0x80)>>7;txd<<=1; 	  delay_us(2);IIC_SCL=1;delay_us(2); IIC_SCL=0;	delay_us(2);}	 
} 	    
// IIC读一个字节
// ack=1,发送ACK,
// ack=0,发送nACK   
uint8_t IIC_Read_Byte(uint8_t ack)
{uint8_t i,receive=0;SDA_IN();for(i=0;i<8;i++ ){IIC_SCL=0; delay_us(2);IIC_SCL=1;receive<<=1;if(READ_SDA)receive++;delay_us(1); }if (!ack)IIC_NAck();elseIIC_Ack();return receive;
}void IIC_Write_UINT16(uint8_t dev_addr, uint8_t wr_addr, uint16_t data)
{IIC_Start();IIC_Write_Byte(dev_addr);IIC_Wait_Ack(); IIC_Write_Byte(wr_addr);IIC_Wait_Ack(); IIC_Write_Byte(data >> 8);IIC_Wait_Ack(); IIC_Write_Byte(data & 0xFF);IIC_Wait_Ack();  	IIC_Stop();delay_ms(2);
}uint16_t IIC_Read_UINT16(uint8_t dev_addr, uint8_t rd_addr)
{uint16_t data;IIC_Start();IIC_Write_Byte(dev_addr);IIC_Wait_Ack();IIC_Write_Byte(rd_addr);IIC_Wait_Ack(); IIC_Start();  	IIC_Write_Byte(dev_addr + 1);IIC_Wait_Ack();data = IIC_Read_Byte(1);data = (data <<8 ) + IIC_Read_Byte(0);IIC_Stop();return data;
}
  • myiic.h
#ifndef __MYIIC_H__
#define __MYIIC_H__
#include "sys.h"//IO方向设置
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}//IO操作函数	 
#define IIC_SCL    PBout(6) 		//SCL
#define IIC_SDA    PBout(7) 		//SDA	 
#define READ_SDA   PBin(7) 	 		//输入SDA //IIC操作函数
void IIC_Init(void);                //初始化IIC的IO口				 
void IIC_Start(void);				//发送IIC开始信号
void IIC_Stop(void);	  			//发送IIC停止信号
void IIC_Write_Byte(uint8_t txd);	//IIC发送一个字节
uint8_t IIC_Read_Byte(uint8_t ack);	//IIC读取一个字节
uint8_t IIC_Wait_Ack(void);			//IIC等待ACK信号
void IIC_Ack(void);					//IIC发送ACK信号
void IIC_NAck(void);				//IIC不发送ACK信号void IIC_Write_UINT16(uint8_t dev_addr, uint8_t wr_addr, uint16_t data);
uint16_t IIC_Read_UINT16(uint8_t dev_addr, uint8_t rd_addr);#endif
  • dacx0502.c
#include "dac60502.h" 
#include "delay.h" 										 //初始化IIC接口
int DAC60502_Init(void)
{IIC_Init();return 0;
}void DAC60502_Write(uint16_t WrAddr, uint16_t Data)
{IIC_Write_UINT16(DEV_ADDR, WrAddr, Data);
}uint16_t DAC60502_Read(uint16_t RdAddr)
{return IIC_Read_UINT16(DEV_ADDR, RdAddr);
}
  • dac60502.h
#ifndef __DAC60502_H__
#define __DAC60502_H__
#include "myiic.h"   #define DEV_ADDR 		0x90#define NOOP   			0x00
#define DEVID  			0x01
#define SYNC   			0x02
#define CONFIG    		0x03
#define GAIN  			0x04
#define TRIGGER   		0x05
#define STATUS  		0x06
#define DAC_A  			0x08
#define DAC_B  			0x09int DAC60502_Init(void);
void DAC60502_Write(uint16_t WrAddr, uint16_t Data);
uint16_t DAC60502_Read(uint16_t RdAddr);#endif
  • main.c
#include "sys.h"
#include "delay.h"
#include "usart.h" 
#include "led.h" 		 	 
#include "dac60502.h" 
#include "usmart.h" int main(void)
{	uint16_t data = 0;Stm32_Clock_Init(9);	//系统时钟设置uart_init(72,115200);	//串口初始化为115200delay_init(72);	   	 	//延时初始化 usmart_dev.init(72);	//初始化USMART		LED_Init();		  		//初始化与LED连接的硬件接口DAC60502_Init();		//IIC初始化 while(1){data = data + 0x1;if(data > 0x0fff)data = 0;DAC60502_Write(DAC_A,data << 4);printf("Write: %d \r\n", data);delay_ms(100);printf("Read: %d \r\n", DAC60502_Read(DAC_A) >> 4);delay_ms(100);LED0=!LED0;}return 0;
}
http://www.khdw.cn/news/17775.html

相关文章:

  • 网站开发有前途么旺道seo推广有用吗
  • 营销网站建设网络公司推广自己产品的文案
  • 杭州网站设计开发郑州seo多少钱
  • 网站建设需求分析的功能关键词优化平台有哪些
  • Wordpress刷新CDN缓存seo基础理论
  • 最简单的网站建设语音专业网站优化
  • 用什么做网站 优化十堰seo排名公司
  • wordpress菜单css类上海网站建设优化
  • 广告设计公司品牌设计优化关键词的步骤
  • 鞍山网站建设营销百度怎么发布短视频
  • 山东电子商务网站建设网页链接
  • 微博推广技巧大连百度网站排名优化
  • 那些网站可以做问答天津seo排名费用
  • 石家庄房产信息网查询知乎seo排名帝搜软件
  • 上海 网站设计公司付费恶意点击软件
  • 如何做网站庆祝她生日快乐整站seo优化
  • 江河建设集团有限公司网站湖南正规seo优化
  • flash做ppt的模板下载网站有哪些网址制作
  • 室内设计师网名武汉seo全网营销
  • 小程序发布流程seo网站排名全选
  • 免费做文字图网站seo怎么优化软件
  • 深圳企业网站建设费用谈谈自己对市场营销的理解
  • 做网站上哪买空间站长素材网
  • 南陵网站建设邮件营销
  • 南宁企业建站三叶草gy5987
  • 琼海做网站口碑百度竞价排名技巧
  • 广告网站建设流程百度客服24小时人工电话
  • 怎么在备案号添加网站网络精准推广
  • 网络空间租用价格谷歌seo排名
  • 基于站点的网络营销方法发布悬赏任务的推广平台