OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 5723|回复: 4

stm32的mini板,fatfs移植,txt存储ad采集信息

[复制链接]

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-9-1
在线时间
0 小时
发表于 2015-9-1 22:13:58 | 显示全部楼层 |阅读模式
5金钱
[mw_shl_code=c,true]int main(void) { u16 adcx1; u16 adcx2; u16 adcx3; u16 adcx4; float temp1; u32 total,free; u16 pointer=0; u8 *write_buf="0000,0000,0000,0000"; u8 rxlen=21; FIL file; //???????ó FRESULT res; NVIC_Configuration(); delay_init(); //???±?????????? uart_init(9600); //?®??????????9600 exfuns_init(); //??fatfs?à??±????ê?????? LED_Init(); //LED?????? Adc_Init(); usmart_dev.init(72); mem_init(); //???????????? while(SD_Initialize()) //?ì??SD?¨ { } exfuns_init(); //??fatfs?à??±????ê?????? f_mount(fs[0],"0:",1); //????SD?¨ f_mount(fs[1],"1:",1); //????FLASH. while(exf_getfree("0",&total,&free)) //????SD?¨??×??????????à???? { } res=f_open(&file, "0:/ad.txt", FA_OPEN_ALWAYS | FA_WRITE); //?ò??ad.txt???????????????????????ò???¨???????????? pointer=file.fsize; //?????????ó?? res=f_lseek(&file,pointer);//???????????? res=f_write(&file,write_buf,rxlen,&br);//?ò??????????ad×?·??® res=f_close(&file); //??±??ò???????? myfree(write_buf); while(1) { adcx1=Get_Adc_Average(ADC_Channel_11,10)*3300/4096;//PC1 adc write_buf[0]=adcx1/1000+0x30; write_buf[1]=adcx1%1000/100+0x30; write_buf[2]=adcx1%100/10+0x30; write_buf[3]=adcx1%10+0x30; write_buf[4]=','; adcx2=Get_Adc_Average(ADC_Channel_12,10)*3300/4096;//PC2 adc write_buf[5]=adcx2/1000+0x30; write_buf[6]=adcx2%1000/100+0x30; write_buf[7]=adcx2%100/10+0x30; write_buf[8]=adcx2%10+0x30; write_buf[9]=','; adcx3=Get_Adc_Average(ADC_Channel_13,10)*3300/4096;//PC3 adc write_buf[10]=adcx3/1000+0x30; write_buf[11]=adcx3%1000/100+0x30; write_buf[12]=adcx3%100/10+0x30; write_buf[13]=adcx3%10+0x30; write_buf[14]=','; adcx4=Get_Adc_Average(ADC_Channel_14,10)*3300/4096;//PC4 adc write_buf[15]=adcx4/1000+0x30; write_buf[16]=adcx4%1000/100+0x30; write_buf[17]=adcx4%100/10+0x30; write_buf[19]=adcx4%10+0x30; write_buf[20]='\r'; //???????? write_buf[21]='\n'; delay_ms(100); res=f_open(&file, "0:/ad.txt", FA_OPEN_ALWAYS | FA_WRITE); //?ò??ad.txt???????????????????????ò???¨???????????? pointer=file.fsize; //?????????ó?? res=f_lseek(&file,pointer);//???????????? res=f_write(&file,write_buf,rxlen,&br);//?ò??????????ad×?·??® res=f_close(&file); //??±??ò???????? myfree(write_buf); delay_ms(100); } } [/mw_shl_code]
存储的数据一直是0000,0000,0000,0000

最佳答案

查看完整内容[请看2#楼]

需要不停的myfree(write_buf)吗,可以把write_buf定义成一个数组,而不是一个野指针
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

105

主题

522

帖子

1

精华

金牌会员

Rank: 6Rank: 6

积分
1386
金钱
1386
注册时间
2012-10-23
在线时间
97 小时
发表于 2015-9-1 22:13:59 | 显示全部楼层
需要不停的myfree(write_buf)吗,可以把write_buf定义成一个数组,而不是一个野指针
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2015-9-1 22:21:27 | 显示全部楼层
仿真看看write_buf数据是否正常。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

2

主题

10

帖子

0

精华

新手上路

积分
38
金钱
38
注册时间
2015-9-1
在线时间
0 小时
 楼主| 发表于 2015-9-10 17:46:26 | 显示全部楼层
回复【3楼】miaoguoqiang:
---------------------------------
把write_buf定义成数组就好了,谢啦,但是现在又发现只能存储64k的数据,怎样可以使存储的数据多一些呀
回复

使用道具 举报

0

主题

3

帖子

0

精华

新手入门

积分
17
金钱
17
注册时间
2020-10-21
在线时间
5 小时
发表于 2021-2-2 16:07:42 | 显示全部楼层
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 13:42

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表