Pinout设置见截图23_4_1。Parameter settings和其他设置见图23_4_2~3。其他的默认设置即可。导出工程文件。 本例模拟输出锯齿波。先设置变量:) P5 ?1 a* |+ z2 T Q. b1 l9 y uint8_t ch=0xAb,dac1=0x10,dac2; 自定义函数声明中添加:( i! `: o& U+ I" e0 x$ L1 I0 P void dacTest(void);! q2 \. \, f/ M% y 在main中前边添加: MX_DAC_Init();) }7 \4 |: p; [. x 和1 r2 X; C) ?& w4 `1 z' E HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_8B_R,0xFF); HAL_DAC_SetValue(&hdac,DAC_CHANNEL_2,DAC_ALIGN_8B_R,0xFF); HAL_DAC_Start(&hdac,DAC_CHANNEL_1); HAL_DAC_Start(&hdac,DAC_CHANNEL_2); 修改printf语句为:4 [1 H9 x4 s6 w printf("ADC1=%4d ADC2=%4d ADC3=%4d DAC1=%3d,DAC2=%3d \n\r", adcx[0],adcx[1],adcx[2],dac1,dac2);' w0 J' S9 b v2 b; Y* R7 H 在循环中添加: dacTest(); 最后在main后边添加: //DacTest void dacTest(void){3 T0 w, p( {& i' |8 S% Z) D7 o if(dac1<0xFE)dac1++;else dac1=0x01;//PA_4,55 g- x' D1 g% }$ `3 k dac1++;dac2=0xFF-dac1;' P- K3 u- Z/ u, Q' i6 J HAL_DAC_SetValue(&hdac,DAC_CHANNEL_1,DAC_ALIGN_8B_R,dac1); HAL_DAC_SetValue(&hdac,DAC_CHANNEL_2,DAC_ALIGN_8B_R,dac2);0 B1 P6 J% }$ o- W } 因为DAT1,DAT2位互补输出,链接一只双向发光二极管,结果见照片23_4_4,波形见照片23_4_5。串口数据见图23_4_6。0 y+ R9 V# ^. O! g 5 ~" h" X0 ?$ q$ W5 I5 k |
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