ui是做网站的吗,宁波做百度网站推广,如何建立一个网站查询数据,广州网站建设好公司简 介#xff1a; 本文介绍了STC32G单片机使用外部25MHz晶振进行导航信号采集的实验。通过外部150kHz交流信号耦合到单片机ADC通道#xff0c;测试了不同ADC时钟分频系数#xff08;0-7#xff09;下的信号采集效果。实验采集了128组ADC数据#xff0c;分析发现分频系数为…简 介本文介绍了STC32G单片机使用外部25MHz晶振进行导航信号采集的实验。通过外部150kHz交流信号耦合到单片机ADC通道测试了不同ADC时钟分频系数0-7下的信号采集效果。实验采集了128组ADC数据分析发现分频系数为2时三分频信号波形最完整处于欠采样状态。文中提供了完整的Python数据处理代码用于分析采集到的256个ADC数据点并绘制信号波形图。结果表明合理设置ADC时钟分频可优化信号采集精度。关键词STC32GDMAADCSTC32G12 使用外部晶振带有两级放大的导航信号采集电路板AD\Test\2025\December\TestOSC25MHzSTC32GTSSOP20.SchDocC51\STC\Test\2025\December\TestOSC32G12TSSOP20\TestOSC25M32G12TSSOP20.uvproj01导航信号采集一、背景上午制作了 STC32G 单片机采样电路板。 单片机使用外部的 25MHz的晶体时钟 提高了采样频率的精度。 外部的 150kHz 的交流信号通过工字型电感耦合到 单片机的 ADC 0 通道。 下面 分别设置 单片机 ADC时钟的不同分频频率 分别在每个频率下采集 128 条 ADC数据。 然后通过实验 找到计算信号幅度最优的方法。 使得所获得到的信号幅度噪声最小。二、采集信号通过编程 使用 ISP 软件发送串口命令 可以获得 单片机采集到的 ADC的数据。 在接收到的数据中 后面四个数据中包括有平均值。 前面 512个字节 对应 256个ADC数据。在ADC时钟分频系数为0的时候 DMA 采集到 256个数据对应信号波形。 可以看到数据在开始的时候幅度略大 后面降低了一些。 将ADC时钟分频设置为1 采集到的信号波形同样可以看到开始的时候波形幅度高 随后信号采集到的幅值降低了。 分频系数为2 对应的三分频。 此时应该是处在欠采样状态。 信号波形比较完整。 分撇系数为3 分频系数为4 分频系数为5 分频系数为6 最后一个是分频系数为7 对应的采样频率比分频系数为 0 时降低了8倍。▲ 图1.2.1 ADC时钟分频系数0▲ 图1.2.2 ADC时钟分频系数1▲ 图1.2.3 ADC时钟分频系数2▲ 图1.2.4 ADC时钟分频系数3▲ 图1.2.5 ADC时钟分频系数4▲ 图1.2.6 ADC时钟分频系数5▲ 图1.2.7 ADC时钟分频系数6▲ 图1.2.8 ADC时钟分频系数7#!/usr/local/bin/python# -*- coding: gbk -*-## TEST1.PY -- by Dr. ZhuoQing 2025-12-14## Note:#fromheadmimport*fromtsmodule.tsstm32import*defgetdata():ispclearreceive()ispsend()time.sleep(.5)ispcopyreceive()time.sleep(.25)strallclipboard.paste().split(\r\n)data[]forsinstrall:iflen(s)20:continuesss.split( )forsssinss:iflen(sss)!2:continuedata.append(int(sss,16))return[a*256bfora,b,inzip(data[:-1:2],data[1::2])]#------------------------------------------------------------ddim[]foriinrange(128):dgetdata()ddim.append(d[:256])printf(i)tspsave(sample7,ddimddim)#------------------------------------------------------------printf(d,len(d))plt.plot(d[:256],lw3)plt.xlabel(N,colorsteelblue,fontsize24)plt.ylabel(ADC,colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.tight_layout()plt.show()#------------------------------------------------------------# END OF FILE : TEST1.PY##!/usr/local/bin/python# -*- coding: gbk -*-## TEST3.PY -- by Dr. ZhuoQing 2025-12-14## Note:#fromheadmimport*ddimtspload(sample1,ddim)fordinddim:plt.clf()plt.plot(d,lw3)plt.xlabel(N,colorsteelblue,fontsize24)plt.ylabel(ADC,colorsteelblue,fontsize24)plt.grid(False)plt.tight_layout()plt.draw()plt.pause(.1)pltgif.append(plt)pltgif.save()#------------------------------------------------------------# END OF FILE : TEST3.PY#※总结 ※本文使用 STC32G 单片机采集 150kHz的导航信号。 STC32G的时钟采用了外部25MHz 晶体时钟。 这样可以保证采集信号时钟精度。 对于 ADC 时钟分频系数进行不同的设定 寻找一个更好的分频系数用于数据的采集。 采集到的数据出现开始较大 然后衰减的情况。 这种情况根据分析。 应该是 LC 谐振回路的信号 受到单片机 ADC 输入阻抗的影响 在采集信号的时候 输入电阻变小 进而使得LC谐振回路中的信号也会变小。 在实际数据电路设计的时候 应该使用高频运放对 LC 回路信号缓冲之后 再输入单片机ADC通道进行采集。#!/usr/local/bin/python# -*- coding: gbk -*-## TEST2.PY -- by Dr. ZhuoQing 2025-12-14## Note:#fromheadmimport*ddimtspload(sample2,ddim)printf(shape(ddim))fordinddim:plt.plot(d)plt.xlabel(N,colorsteelblue,fontsize24)plt.ylabel(ADC,colorsteelblue,fontsize24)plt.grid(True,whichboth,linestyle--,alpha0.7)plt.tight_layout()plt.show()#------------------------------------------------------------# END OF FILE : TEST2.PY#■ 相关文献链接:STC32G12 使用外部晶振-CSDN博客带有两级放大的导航信号采集电路板● 相关图表链接:图1.2.1 ADC时钟分频系数0图1.2.2 ADC时钟分频系数1图1.2.3 ADC时钟分频系数2图1.2.4 ADC时钟分频系数3图1.2.5 ADC时钟分频系数4图1.2.6 ADC时钟分频系数5图1.2.7 ADC时钟分频系数6图1.2.8 ADC时钟分频系数7