现在要求我用stm32F407开发板,有3个传感器,通过ADC采集数据,通过串口传至上位机,上位机用Labview编写,不知道该怎么搞啊,求大佬们指点下,给个大概的方案,单通道的我之前做好了,现在多通道不知道咋搞了,看网上有些用DMA传递数据,不知道为啥要用DMA,另外三个通道的话,协议该怎么定才好(从来没定过协议),最主要的定了协议,怎么通过串口传输数据呢?是通过uart函数,一个字节一个字节的传,还是通过printf函数呢?毕竟三个通道的ADC数据传输协议的话,肯定不止一个字节。真心求指导,感激不尽
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
任何通讯都建议应该走协议的方式,你上面的需求:
1. STM32采集三路AD,你不就得到3个变量值么(ADC值,或者是计算值);
2. 串口发送设计一个协议,很简单例如“01 data0 data1 data2 crc”,当然这个协议随你定,只要能够区分三个数据就可以了,协议就是一个人为规定的东西,随便你定,上位机得到协议后解析三个数据就可以了;
3. 最后强调一下必须要用类crc的校验的,没有校验那么你的数据是不可靠的,当然你要嫌麻烦可以不做crc。
能采集到就按照2楼的方式发送啊
上位机收到数据按照2楼设计的协议解析啊
当然,2楼只是举了个例子,你可以自己设计协议
那么按协议发送数据的时候是用uart函数逐个字节的发送还是用printf函数直接一下发送一套数据呢
还有单个ADC进行3通道数据采集的话,是按照顺序,轮流采集3个传感器的数据么?然后轮流发送?
一周热门 更多>