找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 4762|回复: 3
打印 上一主题 下一主题
收起左侧

双通道DAC(基于stm32f407)

[复制链接]
跳转到指定楼层
楼主
ID:220867 发表于 2017-7-20 13:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
本人做的,供大家参考

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)


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:222970 发表于 2017-7-28 12:32 | 只看该作者
此帖仅作者可见

使用道具 举报

板凳
ID:102008 发表于 2019-9-22 21:08 | 只看该作者
此帖仅作者可见

使用道具 举报

地板
ID:616628 发表于 2020-3-9 16:26 | 只看该作者
此帖仅作者可见

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表