本人做的,供大家參考
stm32f407單片機源程序如下:
- #include "SysTick.h"
- #include "key.h"
- #include "dac.h"
- #include "usart.h"
- #include "led.h"
- #include "timer.h"
- int main()
- {
- u8 k;
- //u8 i = 0;
- sum = 0;
- /*int dac_value=0;
- u16 dacval;
- float dac_vol;*/
-
- SysTick_Init(168);
- led_init();
- USART1_Init();
- key_init();
- dac_init();
- TIM4_Init(50000-1,8400-1);
- DAC_SetChannel2Data(DAC_Align_12b_R,0);
- DAC_SetChannel1Data(DAC_Align_12b_R,4095);
-
- while(1)
- {
- k=KEY_Scan(0);
- if(k == 1)
- {
- while(K_UP == 1)
- {
- i++;
- //K_UP = 0;
- break;
- }
- sum += i;
- i = 0;
- //delay_ms(10000);
-
- }
- /*if(sum != 0)
- {
- printf("%d\r\n",sum);
- sum = 0;
- }*/
- /*led1 = 0;
- dac_value+=400;
- if(dac_value>=4000)
- {
- dac_value=4095;
- }
- DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);
- delay_ms(200);
- led1 = 1;
- dacval=DAC_GetDataOutputValue(DAC_Channel_1);
- dac_vol=(float)dacval*(3.3/4096);
- printf("輸出DAC電壓值為:%.2fV\r\n",dac_vol);*/
- //}
- /*else if(K_DOWN == 0)
- {
- i--;
- printf("%d\r\n",i);
- led1 = 0;
- dac_value-=400;
- if(dac_value<=0)
- {
- dac_value=0;
- }
- DAC_SetChannel1Data(DAC_Align_12b_R,dac_value);
- delay_ms(200);
- led1 = 1;
- dacval=DAC_GetDataOutputValue(DAC_Channel_1);
- dac_vol=(float)dacval*(3.3/4096);
- printf("輸出DAC電壓值為:%.2fV\r\n",dac_vol);
- }
- else if(K_LEFT == 0)
- {
- en = 0;
- delay_ms(1000);
- led2 = 1;
- //en = 1;
- ……………………
- …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼
所有資料51hei提供下載:
dac_test.rar
(483.81 KB, 下載次數: 76)
2017-7-20 17:14 上傳
點擊文件名下載附件
下載積分: 黑幣 -5
|