日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

STM32 基础系列教程 49 – Jansson

發(fā)布時間:2025/4/5 编程问答 29 豆豆
生活随笔 收集整理的這篇文章主要介紹了 STM32 基础系列教程 49 – Jansson 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

前言

??? JSON(JavaScript?Object Notation, JS 對象簡譜) 是一種輕量級的數(shù)據(jù)交換格式。它基于?ECMAScript?(歐洲計算機協(xié)會制定的js規(guī)范)的一個子集,采用完全獨立于編程語言的文本格式來存儲和表示數(shù)據(jù)。簡潔和清晰的層次結(jié)構(gòu)使得 JSON 成為理想的數(shù)據(jù)交換語言。 易于人閱讀和編寫,同時也易于機器解析和生成,并有效地提升網(wǎng)絡(luò)傳輸效率。它獨立于開發(fā)語言,是一種文本格式, 很適用描述在各個系統(tǒng)間交換的數(shù)據(jù)。

JSON 格式的數(shù)據(jù)看起來就像下面這個樣子:

{

“Room1”: {

“LED”: “on”,

“Temperature”: “36”

}

}

這個 JSON 數(shù)據(jù)描述的是 Room1 的 LED 燈狀態(tài)以及溫度值。它由一組“名稱(key) ”以及對應(yīng)的“ 值(value) ”組成。“名稱”和“ 值”之間由“ : ”分開。各組“名稱: 值”對之間由“, ”符號進行分割。

?

Jansson是一個用于編碼、解碼和操作JSON數(shù)據(jù)的C庫。其主要特點和設(shè)計原則是:

簡單直觀的API和數(shù)據(jù)模型

全面的文檔

不依賴于其他庫

完全Unicode支持(UTF-8)

廣泛的測試套件

?

Jansson獲得麻省理工學院許可;有關(guān)詳細信息,請參閱源代碼發(fā)行版中的LICENSE。Jansson在生產(chǎn)中使用,它的API是穩(wěn)定的。它可以在許多平臺上工作,包括許多Unix之類的系統(tǒng)和Windows。它適用于任何系統(tǒng),包括桌面、服務(wù)器和小型嵌入式系統(tǒng)。本節(jié)將給大家演示STM32MCU + jansson庫實現(xiàn)對JSON數(shù)據(jù)的組包與解包過程,下面開始進入正題。

?

示例詳解

基于硬件平臺: 正點源子的stm32f4 探索者開發(fā)板,MCU 的型號是?STM32F4ZET6, 使用stm32cubemx 工具自動產(chǎn)生的配置工程,使用KEIL5編譯代碼。本示例所用的開發(fā)板及部分原理圖:

?

  • 關(guān)于CUBEMX工具及KEIL工具的操作將不再細講,如果還有不熟悉的可以查看之前的教程文檔。下面直接介紹工程配置:
  • ?

  • 系統(tǒng)時鐘樹
  • ?

  • 串口配置(用于程序調(diào)試)
  • ?

  • RCC配置
  • SYS配置
  • ?

  • 引腳配置,用到引腳極少
  • 堆棧配置(堆要大些):
  • ?

  • 工程代碼
  • Keil MDK開發(fā)環(huán)境可以擴展豐富的第三方庫,本節(jié)要用到的jansson庫也可以直接在MDK開發(fā)環(huán)境中導入,具體操作如下:
  • 庫安裝》

    庫導入》

    庫導入后》

    ?

  • 在main.c 中main函數(shù)中USER CODE BEGIN Includes、USER CODE0, USER CODE1、USER CODE 2, USER CODE 4 區(qū)域加入如下圖所示代碼:
  • ??

    ?

    c) 編譯工程,調(diào)試程序, (注:在使用探索者F4調(diào)試時,下載或仿真調(diào)試時先不要PC串口工具連接上開發(fā)板的USB_232接口,有可能導致程序運行不了--boot0引腳電平不對,可以先跑起來再在PC串口工具上連接相應(yīng)端口!!,可按下面的具體操作步驟來操作—>>? )

    ?

    串口已打開,程序全速運行(F5或單擊全速運行圖標)相看運行結(jié)果:

    ?

    這個時候可以在串口中看到如下程序運行結(jié)果(成功打印出JSON數(shù)據(jù)并成功解析):

    復制上面輸出的結(jié)果,打開電腦網(wǎng)頁瀏覽器,打開http://www.bejson.com/ (在線JSON格式化)網(wǎng)站,格式化一下輸出結(jié)果!!

    到此本次的基于jansson庫的JSON數(shù)據(jù)操作(創(chuàng)建與解析)就完成了,jansson庫之持的所有接口都在 jansson.h文件中有聲明,關(guān)于jansson庫的更多接口具體說明請查看jansson官方接口說明可以KEIL MDK 安裝目錄下(如筆者的…/ARM/PACK/jansson\1.0.0\doc)的說明文檔對應(yīng)的API Reference部分:

    當然你也可以直接百度jansson,進入Jansson官方網(wǎng)站https://jansson.readthedocs.io/en/2.12/apiref.html:查看API Reference說明:

    下載使用最新的jansson庫請點它--> http://www.digip.org/jansson/releases/ ,快快讓你的程序也Json起來吧。

    ?

    OK,本期實驗完成!下期見!同時如果大家有什么疑問或是有想了解的其它內(nèi)容,也歡迎大家留言!!最后喜歡這個公眾號的同學們記得加關(guān)注了,會有不定期技術(shù)干貨推出!!

    ?

    文中源碼資料下載,在公眾號里給十三發(fā)消息:

    下載|STM32基礎(chǔ)系列教程49

    ?

    關(guān)注十三公眾號

    ?

    《新程序員》:云原生和全面數(shù)字化實踐50位技術(shù)專家共同創(chuàng)作,文字、視頻、音頻交互閱讀

    總結(jié)

    以上是生活随笔為你收集整理的STM32 基础系列教程 49 – Jansson的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。