STM32 CubeMX DAC+TIM+DMA 输出正弦波

使用STM32CubeMX配置如下

板子 F429IGT6

时钟配置

 DAC 是用 DAC1

 Byte 是8bits Half Word 是16bits  Word 是 32bits

 触发方式 TIM2 触发 

TIM 使用 TIM2

 正弦波波形数据 共100个点

const uint16_t Sine12bit[100]={    0x0800,0x0881,0x0901,0x0980,0x09FD,0x0A79,0x0AF2,0x0B68,0x0BDA,0x0C49,
0x0CB3,0x0D19,0x0D79,0x0DD4,0x0E29,0x0E78,0x0EC0,0x0F02,0x0F3C,0x0F6F,    0x0F9B,0x0FBF,0x0FDB,0x0FEF,0x0FFB,0x0FFF,0x0FFB,0x0FEF,0x0FDB,0x0FBF,
0x0F9B,0x0F6F,0x0F3C,0x0F02,0x0EC0,0x0E78,0x0E29,0x0DD4,0x0D79,0x0D19,
0x0CB3,0x0C49,0x0BDA,0x0B68,0x0AF2,0x0A79,0x09FD,0x0980,0x0901,0x0881,
0x0800,0x077F,0x06FF,0x0680,0x0603,0x0587,0x050E,0x0498,0x0426,0x03B7,    0x034D,0x02E7,0x0287,0x022C,0x01D7,0x0188,0x0140,0x00FE,0x00C4,0x0091,
0x0065,0x0041,0x0025,0x0011,0x0005,0x0001,0x0005,0x0011,0x0025,0x0041,
0x0065,0x0091,0x00C4,0x00FE,0x0140,0x0188,0x01D7,0x022C,0x0287,0x02E7,
0x034D,0x03B7,0x0426,0x0498,0x050E,0x0587,0x0603,0x0680,0x06FF,0x077F
};

重点  

上述TIM2时钟为36MHz,触发时间 20*72/36MHz= 1/20KHz

我们的触发时间要大于Tsettling 才可以得到正确输出波形 否则一直没有输出且跑Debug也正常

一般来说 Tsettling 为us级 

(注意 这里只针对计时器触发,用DAC自带的三角波和噪声 无影响)

int main中写入

 HAL_TIM_Base_Start(&htim2);//开启定时器2                HAL_DAC_Start_DMA(&hdac,DAC_CHANNEL_1(uint32_t*)Sine12bit,100,DAC_ALIGN_12B_R);//开启输出

即可得到正弦波

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值