Pinout设置见截图23_4_1。Parameter settings和其他设置见图23_4_2~3。其他的默认设置即可。导出工程文件。/ s) [- s" a1 f+ T/ ` 本例模拟输出锯齿波。先设置变量: uint8_t ch=0xAb,dac1=0x10,dac2; 自定义函数声明中添加:& I, K7 M; f+ }9 l void dacTest(void); 在main中前边添加:# v) j" i# k6 G MX_DAC_Init(); q. F: S9 A, V7 i4 P! q 和# @. W: u% N4 @& N HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_8B_R,0xFF);) _6 T/ V+ x, L* b/ C2 O, k HAL_DAC_SetValue(&hdac,DAC_CHANNEL_2,DAC_ALIGN_8B_R,0xFF);1 P# \. o. K' v3 _+ R# K* F% ^0 L HAL_DAC_Start(&hdac,DAC_CHANNEL_1);- W8 I3 ?- L* T; \ HAL_DAC_Start(&hdac,DAC_CHANNEL_2);" a6 j5 I: H6 ? 修改printf语句为:5 w W9 D- M+ s$ \% s0 ` printf("ADC1=%4d ADC2=%4d ADC3=%4d DAC1=%3d,DAC2=%3d \n\r", adcx[0],adcx[1],adcx[2],dac1,dac2); 在循环中添加:9 P; y( E! ?( z5 [ dacTest();* w7 p6 @) N; I" C 最后在main后边添加: //DacTest4 [8 q! Z! b2 X void dacTest(void){3 Y% o/ R9 c$ a" N3 n @7 Q0 e2 ^ v if(dac1<0xFE)dac1++;else dac1=0x01;//PA_4,5; p4 j, E3 x/ U8 ?8 L, p/ `( b dac1++;dac2=0xFF-dac1;% D0 y j! N2 l- ] HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_8B_R,dac1);! W) v' P; d1 ^' ]$ G! O- \& @: k HAL_DAC_SetValue(&hdac,DAC_CHANNEL_2,DAC_ALIGN_8B_R,dac2); } 因为DAT1,DAT2位互补输出,链接一只双向发光二极管,结果见照片23_4_4,波形见照片23_4_5。串口数据见图23_4_6。; w; x1 g/ a# g7 E8 Y" B 2 z+ _, V. R) g( N. X |
23-4
23-4
23-4
23-4
23-4
23-4
【管管推荐】STM32经验分享篇
STM32固件库分享,超全系列整理
小马哥STM32F103开源小四轴RoboFly全部资料大放送
【MCU实战经验】+STM32F107的USB使用
基于STM32F103两轮平衡小车设计(开源)
STM32F107VCT6官方原理图和PCB
【福利】用STM32库的朋友有福了:STM32F10x_StdPeriph_Lib_V3.5.0chm...
基于STM32F10xx存储器和系统架构经验分享
基于STM32F1的CAN通信之BH1750
基于STM32F1的CAN通信之OLED