91欧美超碰AV自拍|国产成年人性爱视频免费看|亚洲 日韩 欧美一厂二区入|人人看人人爽人人操aV|丝袜美腿视频一区二区在线看|人人操人人爽人人爱|婷婷五月天超碰|97色色欧美亚州A√|另类A√无码精品一级av|欧美特级日韩特级

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

【飛凌RZ/G2L開發(fā)板試用體驗(yàn)】第三篇 sqlite3數(shù)據(jù)庫(kù)編程

開發(fā)板試用精選 ? 來源:開發(fā)板試用 ? 作者:電子發(fā)燒友論壇 ? 2022-10-24 17:32 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

本文來源電子發(fā)燒友社區(qū),作者:h1654155285.8644, 帖子地址:https://bbs.elecfans.com/jishu_2299992_1_1.html


一、前言
RZ/GL2型開發(fā)板內(nèi)置了sqlite3數(shù)據(jù)庫(kù),該數(shù)據(jù)庫(kù)是一款輕型的數(shù)據(jù)庫(kù),它占用資源非常的低,只需要幾百K的內(nèi)存就夠了。本人研究項(xiàng)目中需要使用到數(shù)據(jù)庫(kù),借此機(jī)會(huì)利用開發(fā)板進(jìn)行了sqlite數(shù)據(jù)庫(kù)的學(xué)習(xí)。
本程序中建立數(shù)據(jù)庫(kù)well.db,在數(shù)據(jù)庫(kù)中建立兩個(gè)表格,分別是Well1和Well2,表格內(nèi)容包括時(shí)間、溫度、壓力、液位幾個(gè)參數(shù)。由于該開發(fā)板沒有使用于現(xiàn)場(chǎng),因此溫度、壓力和液位三個(gè)參數(shù)均使用隨機(jī)函數(shù)生成。程序比較簡(jiǎn)單,但是在編寫過程中遇到一些問題,與大家共享。
由于僅僅是數(shù)據(jù)庫(kù)的編程,沒有外接顯示設(shè)備,只是用網(wǎng)線將開發(fā)板與路由器連接,利用USB口與計(jì)算機(jī)連接。
5.jpg

二、程序編寫
1、數(shù)據(jù)庫(kù)的建立

ret = sqlite3_open("well.db", &db_well);   
 		if( ret )  
		{  
  				fprintf(stderr, "Can't open database: %sn", sqlite3_errmsg(db_well));  
  				sqlite3_close(db_well);  
  				exit(1);  
 		}
		else
		{
  				printf("Open well.db!n");  
 		}

使用sqlite3_open函數(shù)建立數(shù)據(jù)庫(kù),其中well.db是數(shù)據(jù)庫(kù)的名稱,db_well是該數(shù)據(jù)庫(kù)的句柄。如果建立成功,將輸出“Open well.db!”信息。
2、表格的建立
該數(shù)據(jù)庫(kù)中建立了Well1和Well2兩個(gè)表格,建立帶入如下所示:

sql =" CREATE TABLE Well1( ID INTEGER PRIMARY KEY,  Time VARCHAR(17),  Temprature REAL,  Pressure REAL,  Liquid_level REAL);" ;  
sqlite3_exec(db_well , sql , 0 , 0 , &Msg );

程序中,首先將指令用ASCII碼形式表示,然后用指令sqlite3_exec執(zhí)行。如果要再建立Well2表格,只需將上述代碼中的Well1換為Well2即可。指令中的ID INTEGER PRIMARY KEY, Time VARCHAR(17), Temprature REAL, Pressure REAL, Liquid_level REAL的分別表示序號(hào)、時(shí)間、溫度、壓力、液位幾個(gè)參數(shù),并且在指令中標(biāo)注了不同的數(shù)據(jù)類型。
3、數(shù)據(jù)的產(chǎn)生
(1)時(shí)間的產(chǎn)生

time(&tmp);   
timp = localtime(&tmp);

timp中便是以結(jié)構(gòu)體形式存儲(chǔ)的時(shí)間,包括年月日時(shí)分秒等信息。
(2)隨機(jī)數(shù)的產(chǎn)生

t=((rand()%(900-700))+700)/10.0;

上述指令用來產(chǎn)生700~900之間的一個(gè)隨機(jī)數(shù)。按照此方法依次產(chǎn)生溫度、壓力、液位等隨機(jī)數(shù)。
4、表格數(shù)據(jù)更新

sprintf(str,"INSERT INTO "Well1" VALUES(NULL , '%2d-%2d-%2d %2d:%2d:%2d', %.1f, %.1f, %.1f);", (timp->tm_year)%100, ( 1 + timp->tm_mon), timp->tm_mday, (timp->tm_hour), timp->tm_min, timp->tm_sec,t,p,l);
sqlite3_exec( db_well , str, 0 , 0 , &Msg );

上述指令用于表格數(shù)據(jù)的更新,即首先將指令以ASCII碼的形式存于str,再用sqlite3_exec指令執(zhí)行。在運(yùn)行過程中,遇到兩個(gè)問題:
(1)sprintf指令執(zhí)行中,總是提示“Segmentation Fault”,經(jīng)過查閱質(zhì)量,將str定義為靜態(tài)變量,才沒有報(bào)錯(cuò)。
(2)時(shí)間要以ASCII碼形式存儲(chǔ),在str中要使用單引號(hào)。
三、程序運(yùn)行
將程序編譯通過,通過SSH拷入開發(fā)板后,執(zhí)行,出現(xiàn)以下界面:
1.png
每秒鐘提示一個(gè)時(shí)間。而且,提示數(shù)據(jù)庫(kù)建立完成。
利用sqlite打開well.db數(shù)據(jù)庫(kù),如下圖所示。
2.png
打開well1表格,展示內(nèi)容如下圖所示:
3.png
打開well2表格,展示內(nèi)容如下:
4.png
通過上述兩圖可以看出,兩個(gè)表格均正確存儲(chǔ)內(nèi)容。此外,利用數(shù)據(jù)庫(kù)的優(yōu)勢(shì),還可以對(duì)數(shù)據(jù)進(jìn)行插入、查詢、刪除等操作,在這里不再演示。

聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場(chǎng)。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 飛凌
    +關(guān)注

    關(guān)注

    0

    文章

    135

    瀏覽量

    16899
  • 開發(fā)板試用
    +關(guān)注

    關(guān)注

    3

    文章

    303

    瀏覽量

    2750
收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    嵌入式RV1126B開發(fā)板】+兩款開發(fā)板之比較

    用戶二次開發(fā)。 就開發(fā)工具而言,可支持ubuntu與docker、支持在線交叉編譯環(huán)境及純Python開發(fā)方式。 就開發(fā)板的外觀及功能來看,分別如圖1和圖
    發(fā)表于 03-05 23:32

    瑞薩RZ/G2L Linux Thermal Framework軟件熱管理介紹

    RA生態(tài)工作室關(guān)注我們RZ/G2L微處理器配備Cortex-A55(1.2GHz)CPU、16位DDR3L/DDR4接口、帶ArmMali-G31的
    的頭像 發(fā)表于 01-13 18:05 ?1264次閱讀
    瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Linux Thermal Framework軟件熱管理介紹

    Renesas RZ/G2L, RZ/V2L SMARC模塊硬件設(shè)計(jì)解析

    Renesas RZ/G2L, RZ/V2L SMARC模塊硬件設(shè)計(jì)解析 在嵌入式系統(tǒng)開發(fā)領(lǐng)域
    的頭像 發(fā)表于 12-30 09:35 ?1006次閱讀

    Renesas SMARC EVK 開發(fā)板啟動(dòng)指南

    Renesas SMARC EVK 開發(fā)板啟動(dòng)指南 在嵌入式開發(fā)領(lǐng)域,Renesas 的 RZ/G2LRZ/
    的頭像 發(fā)表于 12-29 16:15 ?335次閱讀

    OK-MX9596-C開發(fā)板試用】②體驗(yàn)WIFI、藍(lán)牙、音頻、視頻,為AI應(yīng)用打下基礎(chǔ)

    OK-MX9596-C開發(fā)板試用】①開箱圖賞、跑分測(cè)試、yolo大模型箭齊發(fā) -
    發(fā)表于 10-21 18:17

    基于瑞薩RZ/G2L微處理器的Ubuntu系統(tǒng)移植指南

    RZ/G2L微處理器配備Cortex-A55(1.2GHz)CPU、16位DDR3L/DDR4接口、帶Arm Mali-G31的3D圖形加速
    的頭像 發(fā)表于 10-15 06:53 ?8780次閱讀
    基于瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>微處理器的Ubuntu系統(tǒng)移植指南

    【作品合集】嵌入式OK527N-C開發(fā)板測(cè)評(píng)

    針對(duì)不同的功能做了深度優(yōu)化,方便用戶二次開發(fā)的同時(shí)簡(jiǎn)化用戶設(shè)計(jì),為您的項(xiàng)目提供良好的評(píng)估及設(shè)計(jì)依據(jù)。 活動(dòng)詳情地址:OK527N-C開發(fā)板免費(fèi)
    發(fā)表于 09-22 15:54

    【作品合集】合眾HZ-T536開發(fā)板測(cè)評(píng)

    體驗(yàn)】3、移植星閃WS73模塊 【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】4、使用藍(lán)牙模塊讀取小米溫濕度計(jì)的數(shù)據(jù) 【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】5、安裝sq
    發(fā)表于 09-12 09:37

    【HZ-T536開發(fā)板免費(fèi)體驗(yàn)】5、安裝sqlite3和使用golang讀寫數(shù)據(jù)庫(kù)

    如果想在嵌入式設(shè)備上實(shí)現(xiàn)簡(jiǎn)單的設(shè)備管理功能,需要數(shù)據(jù)庫(kù)和服務(wù)后端程序。服務(wù)端程序,我更傾向使用golang來實(shí)現(xiàn)。 安裝sqlite3,使用ubuntu環(huán)境,可以直接用apt install安裝程序
    發(fā)表于 08-26 00:04

    送啦!嵌入式聯(lián)合NXP邀您參加OK-MX9596-C開發(fā)板試用活動(dòng)

    送啦!嵌入式聯(lián)合NXP邀您參加OK-MX9596-C開發(fā)板試用活動(dòng)
    的頭像 發(fā)表于 08-22 08:03 ?1011次閱讀
    送啦!<b class='flag-5'>飛</b><b class='flag-5'>凌</b>嵌入式聯(lián)合NXP邀您參加OK-MX9596-C<b class='flag-5'>開發(fā)板</b><b class='flag-5'>試用</b>活動(dòng)

    瑞薩RZ/G2L MPU的DDR配置(1)

    RZ/G2L微處理器配備Cortex-A55(1.2GHz)CPU、16位DDR3L/DDR4接口、帶Arm Mali-G31的3D圖形加速
    的頭像 發(fā)表于 08-04 13:40 ?3302次閱讀
    瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> MPU的DDR配置(1)

    瑞薩MCU方案:瑞薩RZ/G2L Bootloader單獨(dú)編譯方法詳解

    ? RZ/G2L微處理器配備Cortex -A55(1.2 GHz)CPU、16位DDR3L/DDR4接口、帶Arm Mali-G31的3D
    的頭像 發(fā)表于 07-08 14:47 ?2639次閱讀
    瑞薩MCU方案:瑞薩<b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> Bootloader單獨(dú)編譯方法詳解

    基于瑞薩64位MPU RZ/G2L的uboot串口多波特率支持介紹

    本文主要介紹基于瑞薩64位MPU RZ/G2L,討論uboot下非常規(guī)波特率115200的支持方法,用于解決客戶對(duì)uboot下特殊波特率的需求,供客戶參考。
    的頭像 發(fā)表于 07-04 15:54 ?3067次閱讀
    基于瑞薩64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>的uboot串口多波特率支持介紹

    基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用軟件開發(fā)

    本文主要介紹基于瑞薩64位MPU RZ/G2L進(jìn)行32位應(yīng)用軟件開發(fā)的介紹,用于解決客戶32位軟件移植相關(guān)問題,供客戶參考。
    的頭像 發(fā)表于 06-26 15:48 ?1993次閱讀
    基于瑞薩64位MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b>進(jìn)行32位應(yīng)用軟件<b class='flag-5'>開發(fā)</b>

    具有3D圖形和視頻編解碼器的通用 MPU RZ/G2L 數(shù)據(jù)手冊(cè)

    RZ/G2L 微處理器配備 Cortex-A55?(1.2GHz)CPU、16 位 DDR3L/DDR4 接口、使用 Arm? Mali-G31 的
    的頭像 發(fā)表于 03-12 17:46 ?1103次閱讀
    具有<b class='flag-5'>3</b>D圖形和視頻編解碼器的通用 MPU <b class='flag-5'>RZ</b>/<b class='flag-5'>G2L</b> <b class='flag-5'>數(shù)據(jù)</b>手冊(cè)