实验中,使用的是stm32F429为主控芯片,外置14位AD芯片,4.2MSPS,需要采集的数据为1k~1M。具体过程为:我的方式是通过定义一个变量,再通过移位GPIO_ReadInputDataBit()采集到的AD输出二进制,最后通过printf()打印这个变量。完成传输采集数据。AD芯片SCLK等几个管脚都是连接的普通GPIO口,所以采用模拟方式来读取输出的16位二进制,并通过串口打印到PC上。
现目前的主要问题是模拟过程中,模拟过程的周期太长了大约1ms左右了,这样算下来只能采集500Hz的信号了。主要问题是出现在程序中printf()这个函数上,执行这一句时间太长了;具体程序贴下面;
请问下:
1.这个输出数据思路对吗?
2.如何解决printf()执行时间太长的问题?
3.是否有其他方式来输出数据,来避免执行printf(),提高采样频率? |