CUBEIDE配置
main.c
uint16_t Sine12bit[32]= {
2048 , 2460 , 2856 , 3218 , 3532 , 3786 , 3969 , 4072 ,
4093 , 4031 , 3887 , 3668 , 3382 , 3042 ,2661 , 2255 ,
1841 , 1435 , 1054 , 714 , 428 , 209 , 65 , 3 ,
24 , 127 , 310 , 564 , 878 , 1240 , 1636 , 2048
};
顺序得对
MX_DMA_Init();
MX_DAC1_Init();
MX_TIM6_Init();
HAL_TIM_Base_Start(&htim6);
HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_2, (uint32_t *)Sine12bit, 32, DAC_ALIGN_12B_R);
HAL_DAC_Start_DMA(&hdac1, DAC_CHANNEL_2, (uint32_t *)Sine12bit, 32, DAC_ALIGN_12B_R);
这里的函数不知道为什么一定得写两遍,写一遍就不出波,在前面加delay也不行,不知道是什么原因.
可能是stm32h7的DMA的一些问题,很多人说得开Dcache,我这个没开,但是跑起来了,下电再上电也能正常运行,就先不管了.