STM32F407的ADC采集到的数据为12位,而存入SD卡的数据只能是八位的,怎么解决??求大神帮忙!感谢

2019-07-20 02:54发布

如题,我定义了uint16_t  ADC_ConvertedValue1[100];//ADC采样结果缓存,16为的
                    uint8_t buf1[1200];//要写入SD卡的数据缓存,我个人理解(不知道对不对):因为SD卡写入的数据只能是八位的
所以我进行了:buf1[0]=(uint8_t)(ADC_ConvertedValue6[0]>>8);
                        buf1[1]=(uint8_t)(ADC_ConvertedValue6[0]);//把16位的ADC数据分离,然后分别赋给buf1
但是写到SD卡里面是一堆乱码,而写入的总文件大小和程序设计的一样,请问各位兄弟,这个问题怎么解决?感谢!

友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
Mars_man
1楼-- · 2019-07-21 03:39
 精彩回答 2  元偷偷看……
Mars_man
2楼-- · 2019-07-21 08:26
 精彩回答 2  元偷偷看……
Mars_man
3楼-- · 2019-07-21 09:17
回复【8楼】正点原子:
---------------------------------
照原子哥的意思,我进行了操作
u16 ADC_ConvertedValue1[100];//ADC数据缓存数组
然后在DMA产生中断时,直接进行res=f_write(f_jpg,(u8*)ADC_ConvertedValue1,200,&bwr);将ADC_ConvertedValue1的数据写入SD卡。但是在电脑打开SD卡时,发现还是一堆乱码?请问原子哥,我这样的做法对吗?需要什么改进?感谢您的帮助!
SD卡里的乱码是这样的:

hyghyg1234
4楼-- · 2019-07-21 14:28
原子说的对,将数据转换成字符型存储。
Mars_man
5楼-- · 2019-07-21 16:42
 精彩回答 2  元偷偷看……
正点原子
6楼-- · 2019-07-21 19:31
 精彩回答 2  元偷偷看……

一周热门 更多>