esemi00
Dependencies: mbed FatFileSystemCpp
mainUSB3.cpp@0:2369be4f42cd, 2021-01-20 (annotated)
- Committer:
- esemi00
- Date:
- Wed Jan 20 05:26:38 2021 +0000
- Revision:
- 0:2369be4f42cd
esemi00
Who changed what in which revision?
User | Revision | Line number | New contents of line |
---|---|---|---|
esemi00 | 0:2369be4f42cd | 1 | //mainUSB3.cpp |
esemi00 | 0:2369be4f42cd | 2 | #include "mbed.h" |
esemi00 | 0:2369be4f42cd | 3 | #include "MSCFileSystem.h" |
esemi00 | 0:2369be4f42cd | 4 | #define FSNAME "usb"//FATファイルシステムのマウント名(任意) /マウント名 がルートディレクトリ |
esemi00 | 0:2369be4f42cd | 5 | |
esemi00 | 0:2369be4f42cd | 6 | Serial pc(USBTX,USBRX); |
esemi00 | 0:2369be4f42cd | 7 | MSCFileSystem msc(FSNAME); |
esemi00 | 0:2369be4f42cd | 8 | AnalogIn ond(p15); // 温度センサ LM61 10mV/℃ 0℃ 600mV |
esemi00 | 0:2369be4f42cd | 9 | |
esemi00 | 0:2369be4f42cd | 10 | int main(){ |
esemi00 | 0:2369be4f42cd | 11 | DIR *d; //ディレクトリ |
esemi00 | 0:2369be4f42cd | 12 | struct dirent *p; //ディレクトリ内情報(ファイル名、ファイルタイプ) |
esemi00 | 0:2369be4f42cd | 13 | char buf_f[1024]; //ファイル読み出し時のバッファ |
esemi00 | 0:2369be4f42cd | 14 | float a,b,c ;//温度計算時使用 |
esemi00 | 0:2369be4f42cd | 15 | |
esemi00 | 0:2369be4f42cd | 16 | d = opendir("/" FSNAME "/web"); //① // /usb/webをオープン |
esemi00 | 0:2369be4f42cd | 17 | |
esemi00 | 0:2369be4f42cd | 18 | pc.printf("\nList of files on the flash drive:\r\n"); |
esemi00 | 0:2369be4f42cd | 19 | |
esemi00 | 0:2369be4f42cd | 20 | if ( d != NULL ) { |
esemi00 | 0:2369be4f42cd | 21 | while ( (p = readdir(d)) != NULL ) { //ディレクトリ内情報読み出し |
esemi00 | 0:2369be4f42cd | 22 | pc.printf(" - %s\n", p->d_name); //ファイル名を表示 |
esemi00 | 0:2369be4f42cd | 23 | } |
esemi00 | 0:2369be4f42cd | 24 | } else { |
esemi00 | 0:2369be4f42cd | 25 | pc.printf("Could not open directory!\r\n"); |
esemi00 | 0:2369be4f42cd | 26 | } |
esemi00 | 0:2369be4f42cd | 27 | |
esemi00 | 0:2369be4f42cd | 28 | pc.printf("\r\nwrite file test\r\n"); |
esemi00 | 0:2369be4f42cd | 29 | |
esemi00 | 0:2369be4f42cd | 30 | FILE *write_fp = fopen("/" FSNAME "/web/ond_test.txt", "aw");//② //追加書き(a)および新規書き込み(w) |
esemi00 | 0:2369be4f42cd | 31 | if(write_fp != NULL) { |
esemi00 | 0:2369be4f42cd | 32 | //ファイルがオープンできた |
esemi00 | 0:2369be4f42cd | 33 | a = ond.read(); // LM61 0.01V/ ℃ 0 ℃ 0.6V (b - 0.6)/0.01 |
esemi00 | 0:2369be4f42cd | 34 | b = a * 3.3;//③ |
esemi00 | 0:2369be4f42cd | 35 | c = b * 100 - 60;//④ |
esemi00 | 0:2369be4f42cd | 36 | fprintf(write_fp,"ond=%f\r\n", c);//⑤ |
esemi00 | 0:2369be4f42cd | 37 | pc.printf("%f V:%f C:%f\n", a, b, c); |
esemi00 | 0:2369be4f42cd | 38 | fclose(write_fp); |
esemi00 | 0:2369be4f42cd | 39 | } |
esemi00 | 0:2369be4f42cd | 40 | |
esemi00 | 0:2369be4f42cd | 41 | pc.printf("\r\nread file test\r\n"); |
esemi00 | 0:2369be4f42cd | 42 | FILE *read1_fp = fopen("/" FSNAME "/web/ond_test.txt", "r"); //⑥ //ファイル読み込み(r) |
esemi00 | 0:2369be4f42cd | 43 | if(read1_fp != NULL) { |
esemi00 | 0:2369be4f42cd | 44 | //ファイルがオープンできた |
esemi00 | 0:2369be4f42cd | 45 | while( NULL != fgets(buf_f, sizeof(buf_f), read1_fp) ) { |
esemi00 | 0:2369be4f42cd | 46 | pc.printf("%s", buf_f); |
esemi00 | 0:2369be4f42cd | 47 | //ファイル読み込み用バッファメモリを初期化 |
esemi00 | 0:2369be4f42cd | 48 | memset(buf_f, 0, sizeof(buf_f));//これがないと文字化けみたいになる |
esemi00 | 0:2369be4f42cd | 49 | } |
esemi00 | 0:2369be4f42cd | 50 | fclose(read1_fp); |
esemi00 | 0:2369be4f42cd | 51 | } |
esemi00 | 0:2369be4f42cd | 52 | } |
esemi00 | 0:2369be4f42cd | 53 | |
esemi00 | 0:2369be4f42cd | 54 | |
esemi00 | 0:2369be4f42cd | 55 | // "/" FSNAME "/web" //① |
esemi00 | 0:2369be4f42cd | 56 | // "/" FSNAME "/web/ond_test.txt", "aw" //② |
esemi00 | 0:2369be4f42cd | 57 | // a * 3.3;//③ |
esemi00 | 0:2369be4f42cd | 58 | // b * 100 - 60;//④ |
esemi00 | 0:2369be4f42cd | 59 | // write_fp,"ond=%f\r\n", c//⑤ |
esemi00 | 0:2369be4f42cd | 60 | // "/" FSNAME "/web/ond_test.txt", "r" //⑥ |
esemi00 | 0:2369be4f42cd | 61 |