xukejing
获得 501 次赞
帮助过660人
DC-DC的原理就是这样的,通过控制时间,把锯齿波里不同相位点截断,可以获得不同的电压。这种波纹在DC-DC的原理上是不可避免的,但是可以在后面的输出中加滤波,比如电感电容滤波。
那个只是设置内部的电路支持高频和低频。但是程序实际操作时候会慢,比如用gpio的setbit函数来操作,每次就要耗时零点几个微秒,即使电路支持好几十兆,但是实际的代码运行没有那么快。
stm32的16位定时器的溢出时间很短,但是可以自己在外接的spi flash定义一个超级大的空间用来存时间,每次定时器溢出时候,值+1,这样定时时间就长了。一个32M位的空间存放时间,每秒+1,计时到人类灭绝都够了。
我一般都用串口、tcp或udp与下位机通讯的,qt或vs都可以。matlab也可以当上位机,有串口的。windows10和windows8系统下,vs的串口控件有些问题,收不到数据,这时候就用tcp或udp。如果windows10下想要用带串口控件的工程,那就用虚拟机装个win7以下的系统吧。
有更简单的方案。用香橙派或NanoPi等Linux系统的开发板,用gcc本地编译stflash程序,然后插上ST-link V2下载器就可以给单片机下载程序了。