STM32給感測器加入毫秒級時間戳並寫入SD卡

2021-10-12 13:53:59 字數 3011 閱讀 2334

calendar.msec=

(32767

-rtc_getdivider()

)*1000

/32767

;

lcd_shownum

(132

,162

,calendar.msec,4,

16);

之後還是只有第一次有毫秒數,後面一直為零,直覺是呼叫問題,自己主函式沒處理好,最後我的解決方``案是:

#include

"led.h"

#include

"delay.h"

#include

"sys.h"

#include

"usart.h"

#include

"lcd.h"

#include

"key.h"

#include

"usmart.h"

#include

"malloc.h"

#include

"mmc_sd.h"

#include

"ff.h"

#include

"exfuns.h"

#include

"fattester.h"

#include

"analysis_data.h"

#include

"rtc.h"

//alientek mini stm32開發板範例**29

//fatfs 實驗

//技術支援:www.openedv.com

//廣州市星翼電子科技****

///fil fil;

fresult ress;

uint bww;

u8 buf[

100]

;//int initsdcard(void);

intmain

(void);

//u16 times=0;

char temp_buf[

200]

;char temp1_buf[

100];

u32 total,free;

//u16 t;

//u16 len;

//u16 i;

nvic_prioritygroupconfig

(nvic_prioritygroup_2)

;// 設定中斷優先順序分組2

delay_init()

;//延時函式初始化

uart_init

(460800);

//串列埠初始化為9600

exfuns_init()

;//為fatfs相關變數申請記憶體

lcd_init()

;//初始化液晶

led_init()

;//led初始化

usmart_dev.

init(72

);mem_init()

;//初始化記憶體池

point_color=red;

//設定字型為紅色

lcd_showstring(60

,50,200,16

,16,"mini stm32");

lcd_showstring(60

,70,200,16

,16,"fatfs test");

lcd_showstring(60

,90,200,16

,16,"atom@alientek");

lcd_showstring(60

,110

,200,16

,16,"use usmart for test");

lcd_showstring(60

,130

,200,16

,16,"2014/3/14");

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卡的總容量和剩餘容量

point_color=blue;

//設定字型為藍色

lcd_showstring(60

,150

,200,16

,16,"fatfs ok!");

lcd_showstring(60

,170

,200,16

,16,"sd total size: mb");

lcd_showstring(60

,190

,200,16

,16,"sd free size: mb");

lcd_shownum

(172

,170

,total>>10,

5,16)

;//顯示sd卡總容量 mb

lcd_shownum

(172

,190

,free>>10,

5,16)

;//顯示sd卡剩餘容量 mb

while

(rtc_init()

)//rtc初始化 ,一定要初始化成功

while(1

)}## 最後就是接收完一幀資料後,直接求當時毫秒數,寫入sd卡,具體原理不知道,但是最後是正確的,因為我的感測器輸出頻率是100hz,

10ms發一次資料,最後寫入sd卡資料也是間隔10ms.

stm32碼盤感測器 STM32編碼器介面模式

1.編碼器 圖1 編碼器示意圖 圖1為編碼器的示意圖,中間是乙個帶光柵的碼盤,光通過光柵,接收管接收到高電平,沒通過,接收到低電平。電機旋轉一圈,碼盤上有多少光柵,接受管就會接收多少個高電平。2.stm32編碼器介面模式 暫存器 stm32的編碼器介面模式在stm32中文參考手冊中有詳細的說明。圖2...

STM32與感測器串列埠通訊問題

stm32f407zgt6使用串列埠通訊傳送指令給感測器,讓感測器返回測得的資料。大家看我這個程式,在main函式前面我定義了乙個read instruction陣列,存放讀取感測器的指令,在while迴圈中有乙個按鍵檢測,當按下key0的時候,微控制器傳送這個指令給感測器,理論上感測器接收到指令會...

stm32氣壓感測器 帶探頭的 溶解氧感測器

與極譜探頭相比,原電池探頭更穩定 更精確,溶解氧水平較低,通常執行數月,無需電解質或膜更換,從而降低維護成本。另一方面,極譜法電極需要每隔幾周進行一次充電。最近,一種光學 發光 溶解氧感測器 與電化學do感測器相比,可顯著減少維護。氧氣的光學感測基於用調製藍光照亮的染料 指示器的紅色螢光的測量。與調...