DA驱动程序 函数配置

发布者:心若水仙最新更新时间:2015-10-19 来源: eefocus关键字:驱动程序  函数配置 手机看文章 扫描二维码
随时随地手机看文章
//Author:"泪与汗的缠绵"

//Data:2011-11月

//功能:DA驱动程序,函数配置
#include "main.h"
ADC_InitTypeDef ADC_InitStructure;
GPIO_InitTypeDef GPIO_InitStructure;
u8 Rx_Buffer[128*2];
vu32 FLASH_ID = 0;
#define  M25P64_FLASH_ID        0x202017
float AD_value;
//u16 colors[]={
//  0xf800,0x07e0,0x001f,0xffe0,0x0000,0x07ff,0xf81f,0xffff ,0x7bef
//};



static vu32 TimingDelay = 0;
static vu32 LedShowStatus = 0;
static volatile ErrorStatus HSEStartUpStatus = SUCCESS;
void  ADC_configuration();
 


int main(void)
{
   RCC_Init();
   ADC_configuration();
   LCD_Display_Color(0xffe0);
   LCD_SetBackColor(0xffe0);
   LCD_SetTextColor(0x07e0);
   
    while (1)
     {
  AD_value=ADC_GetConversionValue(ADC1);
  AD_value=AD_value/4095.0*3.3;
  AD_value=AD_value*1000.0;
  Display_variate(60,16,AD_value);
     } 
}


void RCC_Init(void)
{
  RCC_DeInit();

 
  RCC_HSEConfig(RCC_HSE_ON);

 
  HSEStartUpStatus = RCC_WaitForHSEStartUp();

  if(HSEStartUpStatus == SUCCESS)
  {
   
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);

   
    FLASH_SetLatency(FLASH_Latency_2);
   
   
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
 
   
    RCC_PCLK2Config(RCC_HCLK_Div1);
 
   
    RCC_PCLK1Config(RCC_HCLK_Div2);
 
   
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
 
   
    RCC_PLLCmd(ENABLE);
 
   
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
 
   
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
 
   
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }

 
  RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB |RCC_APB2Periph_GPIOC
         | RCC_APB2Periph_GPIOD  | RCC_APB2Periph_AFIO, ENABLE);
   
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_ADC1 , ENABLE);
 
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);

 
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);

 
 
  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2 | RCC_APB1Periph_TIM4, ENABLE);

 
       
    SysTick_Config();
   
    STM3210B_LCD_Init();
 
   
    SPI_FLASH_Init();

   
    FLASH_ID = SPI_FLASH_ReadID();
   
    if(FLASH_ID == M25P64_FLASH_ID)
    {
     
      GPIO_WriteBit(GPIOC, GPIO_Pin_6, Bit_SET);
    }
    else
    {
     
      GPIO_WriteBit(GPIOC, GPIO_Pin_7, Bit_SET);
    }     
}


 void SysTick_Config(void)
{
  
   SysTick_CLKSourceConfig(SysTick_CLKSource_HCLK);
 
  
   SysTick_SetReload(720000);
 
  
   SysTick_ITConfig(ENABLE);
}

 



void Delay(u32 nCount)
{
  TimingDelay = nCount;

 
  SysTick_CounterCmd(SysTick_Counter_Enable);
 
  while(TimingDelay != 0)
  {
  }

 
  SysTick_CounterCmd(SysTick_Counter_Disable);

 
  SysTick_CounterCmd(SysTick_Counter_Clear);
}



void Decrement_TimingDelay(void)
{
  if (TimingDelay != 0x00)
  {
    TimingDelay--;
  }
}
  ////////////AD的配置函数/////////////////////////////
void  ADC_configuration()
{
 
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AIN;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  ADC_InitStructure.ADC_Mode = ADC_Mode_Independent;
  ADC_InitStructure.ADC_ScanConvMode = ENABLE;
  ADC_InitStructure.ADC_ContinuousConvMode = ENABLE;
  ADC_InitStructure.ADC_ExternalTrigConv = ADC_ExternalTrigConv_None;
  ADC_InitStructure.ADC_DataAlign = ADC_DataAlign_Right;
  ADC_InitStructure.ADC_NbrOfChannel=1;  //指定用于转换的通道数
  ADC_Init(ADC1, &ADC_InitStructure);
  
  ADC_RegularChannelConfig(ADC1, ADC_Channel_14, 1, ADC_SampleTime_55Cycles5);
  
  ADC_Cmd(ADC1, ENABLE);
    
  ADC_ResetCalibration(ADC1);
 
  while(ADC_GetResetCalibrationStatus(ADC1));//等待ADC的校准寄存器被设置完毕
  
  ADC_StartCalibration(ADC1);
 
  while(ADC_GetCalibrationStatus(ADC1));
  
  ADC_SoftwareStartConvCmd(ADC1, ENABLE);
}

关键字:驱动程序  函数配置 引用地址:DA驱动程序 函数配置

上一篇:TFT之AD画线 --模拟示波器
下一篇:arm之TFT

推荐阅读最新更新时间:2024-03-16 14:36

ADS7816的AVR驱动程序
/*********************************************************************************** 相关寄存器设置参照M16单片机 初始化写: SPI_Masterinit(); init_DA(); ***********************************************************************************/ /****************************SPI片选硬件宏定义*************************************/ //各芯片的片选脚自行修改 #define
[单片机]
基于TinyOS的CC1100驱动程序设计
1 概述 无线传感器网络(Wireless Sensor Network, WSN)是当前信息技术领域的热点研究方向之一,它综合了传感器技术、遥测技术、嵌入式计算技术、分布式信息处理技术和无线通信技术,是一种通过无线通信方式形成的多跳自组织网络系统。无线传感器网络由大量体积小、功耗低、具有无线通信、传感和数据处理功能的传感器节点组成。节点是无线传感器网络的基本单元,它一般由传感器模块(传感器、A/D转换器)、处理器模块(微处理器、存储器)、无线通信模块(无线收发器)和能量供应模块(电池)组成。 本文研发的无线传感器网络节点选用Chipcon公司低功耗低成本单片收发芯片CC1100作为无线通信模块,将其通过SPI串行总线技术与M
[单片机]
基于TinyOS的CC1100<font color='red'>驱动程序</font>设计
STM8L 芯片 DA 功能初始化注意
最近项目中,使用到了STM8L151芯片的DAC的功能。参照官网的例程后,DA输出还是不对。 后来也是百度其他大神的资料,发现有个大神中,代码多了打开比较器时钟的语句。我在代码中也加入该语句,最后结果对了 下面是DAC的初始化代码 void DAC_Config(void) { CLK_PeripheralClockConfig(CLK_Peripheral_DAC, ENABLE); //打开DAC电源 CLK_PeripheralClockConfig(CLK_Peripheral_COMP,ENABLE); //注意COMP一定要打开,否则不能配置RI的寄存器,原因还不清楚 // RI- IOCMR3
[单片机]
AVR单片机nRF24L01发送接收驱动程序
#include iom16v.h #include macros.h #include 12864.h //------------------------------------------------------------------------------ //spi标志 #define DDR_SPI DDRB #define DD_MOSI 5 #define DD_MISO 6 #define DD_SCK 7 #define DD_SS 4 #define CE PB3 #define IRQ PB2 //--------------------------------NRF24L01接口定义------
[单片机]
STM32_GPIO配置及库函数讲解——LED跑马灯
gpio general-purpose input/output 通用输入/输出端口 GPIO寄存器缩写列表 GPIO 端口的每个位可以由软件分别配置成多种模式。 复位期间和刚复位后,复用功能未开启,I/O 端口被配置成浮空输入模式。 LED硬件连接如下图所示:高电平点亮LED。 要想成功点亮一个LED,程序所需如下步骤:(必须的) 第一步:配置系统时钟。见 STM32F103x RCC寄存器配置 除此之外,还需将GPIO外设时钟打开。 /* Enable GPIOC clock */ RCC_APB2PeriphClockCmd(RCC_APB2
[单片机]
STM32_GPIO<font color='red'>配置</font>及库<font color='red'>函数</font>讲解——LED跑马灯
一种用于D/A转换电路的带隙基准电压源的设计
摘要 :本文介绍了带隙基准电压源的原理,实现了一个高精度的带隙基准电压源电路。此电路在-20℃~100℃的温度范围内,有效温度系数为6.1ppm/℃;电源电压在1.6V~2.0V 变化时,其电源抑制比为103.7dB。 基准电压源在DAC电路中占有举足轻重的地位,其设计的好坏直接影响着DAC输出的精度和稳定性。而温度的变化、电源电压的波动和制造工艺的偏差都会影响基准电压的特性。本文针对如何设计一个低温度系数和高电源电压抑制比的基准电压源作了详细分析。 从DAC电路的实际工作环境考虑,电源电压的变化范围是1.6V~2.0V ,温度变化范围是-20℃~100℃。本带隙基准电压源的设计指标为:1. 输出的基准电压在1.22V左右;2.
[应用]
51单片机汇编语言实验(五)-----A/D 0809模数转换和DA0832
一、实验目的:    了解模/数转换基本原理,掌握ADC0809的使用方法,掌握DAC0832芯片的使用方法。 二、实验设备:    PC计算机一台,Dais-52PRO+实验系统一套。 三、实验内容:    1. A/D 0809模数转换    2. DA0832数模转换 四、 A/D 0809模数转换    1、实验原理:    利用实验系统上的ADC0809作为A/D转换器,实验系统的电位器提供模拟量输入,编制程序,将模拟量转换成数字量并显示。    2、实验步骤:   ① 将0809区的IN0与调压区的0-5V孔连接;   ②将控制线区的RD连到逻辑电路区或非门的一个输入端;   ③将端口地址区的300连到
[单片机]
51单片机汇编语言实验(五)-----A/D 0809模数转换和<font color='red'>DA</font>0832
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved