1.测试单片机发往串口发的数据格式是ASCII码。但是手机这边都是以字节流收的,所以尝试将字节流转成字符串,再将字符串转成整形。这样子是可以正确收到也可以画出波形,但是工作一段时间后应用程序就会崩溃。我一直以为是线程的问题,泪奔了几天。后来直接将字节流转成整形,就能正常工作了。
2.能正确收到数据了,好开森,但是画出的波形是花花的点。原因有两个:第一个是因为虽然能正确收到数据了,因为测试的时候发的数据是0到127内的,谁知道单片机发的是原码,手机收到后转成整形后是补码。第二个是因为单片机发的数据太快了,单片机串口波特率不够,导致点有丢失。
3.单片机发的太快会使画出来的波形断断续续,手机画的太慢会有横线。
4.单片机之前用的是msp430,是想偷懒一下,把忠义假期弄好的拿过来用,发现画出来的波形也是花花的。应该是ad采样点不够多,没有滤波。stm32 ad每次采样20个点,采用DMA传输,20个点放入数组后,进入DMA中断,进行滤波,这样重复200次后,将这200个数据发送发送到手机。
5.由于手机这边是采用点来画的,当频率比较高的时候,画出来的波形就是采样的那些点,看起来间隔比较大。所以我将200个变成1000个点。
6.下面这张图片是1khz的正弦波,是调整好后的。整体还有很多参数要调整。