国产免费AV|泡泡玛特欧洲总部将设在伦敦|中文天堂网www新版资源在线|一本久道综合在线中文|国精产品一二三产区的使用方法|香蕉鱼在线观看|www.27eee
ELEOK
標題:
STM32F103_pwm_dac自定義輸出電壓
[打印本頁]
作者:
路漫漫
時間:
2020-5-20 23:44
標題:
STM32F103_pwm_dac自定義輸出電壓
本實驗利用按鍵(KEY1/KEY_UP兩個按鍵,或USMART)控制STM32F1的TIM1_CH1的PWM輸出,經過二階RC濾波后轉換為DAC輸出,通過ADC1的通道1采集PWM DAC的輸出電壓,在LCD模塊上面顯示ADC獲取到的電壓值以及PWM DAC的設定輸出電壓值等信息。同時可以通過usmart調用PWM_DAC_Set函數,來直接設置PWM DAC的輸出電壓。
注意事項:
1,4.3寸和7寸屏需要比較大電流,USB供電可能不足,請用外部電源適配器(推薦外接12V 1A電源).
2,本例程在LCD_Init函數里面(在ILI93xx.c),用到了printf,如果不初始化串口1,將導致液晶無法顯示!!
3,ADC的參考電壓默認通過P5連接在VDDA上面(3.3V),所以默認參考電壓是3.3V
4,通過跳線帽短接多功能接口(P10)的ADC和PDC,即可實現自測試(AD讀取PWM DAC值,顯示在LCD上)
完整代碼:
stm32_PWM_DAC.rar
(341.68 KB, 售價: 1 E幣)
2020-5-20 23:44 上傳
點擊文件名下載附件
售價: 1 E幣
[記錄]
[
購買
]
部分程序片段
#include "led.h"
#include "delay.h"
#include "sys.h"
//#include "rtc.h"
#include "adc.h"
//#include "dac.h"
#include "timer.h"
//設置輸出電壓
//vol:0~330,代表0~3.3V
void PWM_DAC_Set(u16 vol)
{
float temp=vol;
temp/=100;
temp=temp*256/3.3;
TIM_SetCompare1(TIM1,temp);
}
int main(void)
{
delay_init(); //延時函數初始化
// PWM_DAC_Set NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2); //設置NVIC中斷分組2:2位搶占優先級,2位響應優先級
LED_Init(); //LED端口初始化
TIM1_PWM_Init(255,0); //TIM1 PWM初始化, Fpwm=72M/256=281.25Khz.
TIM_SetCompare1(TIM1,100);//初始值為0
while(1)
{
LED0=0;
PWM_DAC_Set(69);
delay_ms(10);
}
}
復制代碼
歡迎光臨 ELEOK (http://m.afoofa.cn/)
Powered by Discuz! X5.0