1 //配置波形函数 2 void set_wave(unsigned char wave_type) 3 //波形类型0:正弦;1:三角;2:墨西哥草帽 4 { 5 unsigned short i; 6 switch(wave_type) 7 { 8 case 0://选择正弦波 9 for(i = 0; i<256 ; i++) 10 { 11 CS_wave_reg = 0; 12 SPIx_ReadWrite16bit(sin_tl[i]); 13 CS_wave_reg = 1; 14 delay_us(2); 15 } 16 break; 17 case 1://选择三角波 18 for(i = 0; i<256 ; i++) 19 { 20 CS_wave_reg = 0; 21 SPIx_ReadWrite16bit(trg_tl[i]); 22 CS_wave_reg = 1; 23 delay_us(2); 24 } 25 break; 26 case 2://选择墨西哥草帽小波基 27 for(i = 0; i<256 ; i++) 28 { 29 CS_wave_reg = 0; 30 SPIx_ReadWrite16bit(mexhat_tl[i]); 31 CS_wave_reg = 1; 32 delay_us(2); 33 } 34 break; 35 default: 36 break; 37 } 38 } 39 40 //配置频率控制字函数 41 #define DAC_CLK 100000 //DAC的输出频率对DAC7512为100K 42 //设置输出频率 43 void set_frq(unsigned short frq) 44 //输出频率范围必须在1-50_000Hz 45 { 46 unsigned short temp_short; 47 temp_short = (float)65536/DAC_CLK * frq + 0.5;//加0.5是为了消除舍弃误差 48 CS_delta_reg = 0;//选通累加器增加值配置寄存器 49 SPIx_ReadWrite16bit(temp_short); 50 CS_delta_reg = 1; 51 } MCU主机配置函数代码