标题: 双通道DAC(基于stm32f407) [打印本页]

作者: troublechen    时间: 2017-7-20 13:28
标题: 双通道DAC(基于stm32f407)
本人做的,供大家参考

stm32f407单片机源程序如下:
  1. #include "SysTick.h"
  2. #include "key.h"
  3. #include "dac.h"
  4. #include "usart.h"
  5. #include "led.h"
  6. #include "timer.h"


  7. int main()
  8. {
  9.         u8 k;
  10.         //u8 i = 0;
  11.   sum = 0;
  12.         /*int dac_value=0;
  13.         u16 dacval;
  14.         float dac_vol;*/
  15.        
  16.         SysTick_Init(168);
  17.         led_init();
  18.         USART1_Init();
  19.         key_init();
  20.         dac_init();
  21.         TIM4_Init(50000-1,8400-1);
  22.         DAC_SetChannel2Data(DAC_Align_12b_R,0);
  23.         DAC_SetChannel1Data(DAC_Align_12b_R,4095);
  24.        
  25.         while(1)
  26.         {
  27.                 k=KEY_Scan(0);
  28.                 if(k == 1)
  29.                 {
  30.                 while(K_UP == 1)
  31.                 {
  32.                         i++;
  33.                         //K_UP = 0;
  34.                         break;
  35.                 }
  36.                 sum += i;
  37.                 i = 0;
  38.     //delay_ms(10000);
  39.                
  40.           }       
  41.                 /*if(sum != 0)
  42.                 {
  43.                 printf("%d\r\n",sum);
  44.                 sum = 0;
  45.                 }*/
  46.                         /*led1 = 0;
  47.                         dac_value+=400;
  48.                         if(dac_value>=4000)
  49.                         {
  50.                                 dac_value=4095;
  51.                         }
  52.                         DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);
  53.                         delay_ms(200);
  54.                         led1 = 1;
  55.                         dacval=DAC_GetDataOutputValue(DAC_Channel_1);
  56.                   dac_vol=(float)dacval*(3.3/4096);
  57.                   printf("输出DAC电压值为:%.2fV\r\n",dac_vol);*/
  58.                 //}
  59.                 /*else if(K_DOWN == 0)
  60.                 {
  61.                         i--;
  62.                         printf("%d\r\n",i);
  63.                         led1 = 0;
  64.                         dac_value-=400;       
  65.                         if(dac_value<=0)
  66.                         {
  67.                                 dac_value=0;
  68.                         }
  69.                         DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);
  70.       delay_ms(200);
  71.                         led1 = 1;
  72.                         dacval=DAC_GetDataOutputValue(DAC_Channel_1);
  73.                   dac_vol=(float)dacval*(3.3/4096);
  74.                   printf("输出DAC电压值为:%.2fV\r\n",dac_vol);
  75.                 }
  76.                 else if(K_LEFT == 0)
  77.                         {
  78.                           en = 0;
  79.                                 delay_ms(1000);
  80.                                 led2 = 1;
  81.                                 //en = 1;
  82. ……………………

  83. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
dac_test.rar (483.81 KB, 下载次数: 76)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1