本帖最后由 netlhx 于 2016-1-14 08:21 编辑
一、方案名称:
基于GD32F2的函数信号发生器
二、方案介绍:
使用兆亿科技的GD32 MCU小红板。 GD32F207包含一个DAC设备,使用该设备来产生DAC信号,根据输入数据的不同,产生不同的外部模拟信号。演示工程实现了基本的三种信号输出:正弦波、方波、锯齿波。除此之外,还在开发板上实现如下功能。
- FREERTOS移植,实现LED心跳灯,指示程序是否工作正常
- 按键中断,KEY1用来选定不同的输出波形,KEY2用来设定每种波形的输出频率
- UART功能,输出当前选择结果
- DAC信号输出使用DMA机制,减轻CPU负担
使用开源的DSCOPE USB示波器观察输出结果。
DAC信号输出演示工程没有实现输出电压的调整,直接使用的是DAC的VREF作为参考电压。
三、方案结构框图:
完全使用板载资源,方案结构框图略。
四、设计应用描述及心得总结:
1. 使用了官方提供的库函数,但没有使用BSP函数。这样可以更好的熟悉GD32 MCU。 2. 官方提供的例程较少,可以参考STM32 STD LIB 3.5版本中的例程。 3. 官方库函数部分宏定义有待商榷,如在使用DAC的HDR寄存器地址时,走了不少弯路,主要是这些宏定义有误导之嫌。 4. GPIO, TIMER, KEY, USART等程序代码很顺利实现,主要是在DAC上输出碰到了一些障碍,一方面,刚开始的时候没发现板上的丝印居然是反的;另一方面在刚开始调试的时候发现TIMER,DMA都是正常的,但是DAC就是没有获取到数据,经过仔细排查发现是DAC的DHR地址错,更正后程序正常。
感谢GD公司给我们带来了这么好的设备,感谢爱板网及工作人员,还有TROCHILI大侠,你们辛苦了!谢谢!
五、作品实物图+视频(加分):
调试用USB示波器
输出波形图
频率调整图
视频效果展示:
屏幕上输出是分别按KEY1和KEY2所产生的变化
六、方案代码+BOM(加分):
GD32.zip
(3.84 MB, 下载次数: 13, 售价: 2 与非币)
|