国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

實戰技能分享,各種數據類型的SPI, UART, I2C,FDCAN等方式的通信傳輸以及存儲到EEP

cgspine / 682人閱讀

摘要:編程手冊和編程手冊和編程手冊各種數據類型編程,等存儲器的簡易方法一般這些存儲器都是字節編程,寫入浮點等數據類型時不太方便。

目錄

背景知識

F1編程手冊:

F3和F4編程手冊:

F7和H7編程手冊:

各種數據類型編程EEPROM,SPI Flash等存儲器的簡易方法

各種數據類型的SPI,UART,I2C,FDCAN等傳輸問題

實戰案例:

補充拓展貼,特別是結構體對齊問題:


背景知識

各種類型的數據傳輸和存儲就涉及到大小端的問題,所以我們在開頭把這個知識點做個說明。

?

首先要簡單說下芯片的大小端問題,我們這里主要討論Cortex-M內核。

權威指南的說明如下:
Support for little endian and big endian memory systems e The Cortex-M3 and Cortex-M4 processors can work with either little endian or big endian memory systems. In practice, a microcontroller product is normally designed with just one endian configuration.

M內核支持大端或者小端,實際應用中大部分內核都是小端。以STM32為例,全部都是小端,而且是芯片設計之初就固化進去的,不可修改。市面上其他廠家基本也都固化的小端格式。
?

F1編程手冊:

?

F3和F4編程手冊:

?

F7和H7編程手冊:

?


各種數據類型編程EEPROM,SPI Flash等存儲器的簡易方法


一般這些存儲器都是字節編程,寫入浮點等數據類型時不太方便。

這里分享一個方法,定義一個結構體,將各種數據類型封裝進去:

?

寫入的時候采用下面方式:

?

讀取時可以采用下面方式:

?

各種數據類型的SPI,UART,I2C,FDCAN等傳輸問題


這里我們以串口通信為例,比如主機要發送如下格式數據給從機:

?

我們可以做一個如下結構體格式:

typedef struct{    uint8_t ucStart;                            uint16_t usCO2;    uint16_t usPM25;            uint16_t usHumidity;              float    Temprature;    uint32_t ulParam;    uint8_t  ucEnd1;               uint8_t  ucEnd2;   }UART_T;UART_T g_tUartParam;

主機發送的時候我們就可以采用如下方法:

comSendBuf(COM1, (uint8_t *)&g_tUartParam, sizeof(UART_T));

從機工程也定義一個同樣的結構體變量,比如我們把接收到一幀數據存到緩沖uint8_t buf[50]里面了。

我們就可以定義一個結構體指針變量:

UART_T *pUartParam;pUartParam = (UART_T *)buf;

那么我們就可以pUartParam->usCO2,??pUartParam->Temprature等方式來訪問,非常方便。
?


實戰案例:


大家可以下載我們論壇置頂帖V5,V6或者V7板子出廠程序,里面都有相關代碼參考。

?

補充拓展貼,特別是結構體對齊問題:


1、【燒腦技術貼】無法回避的字節對齊問題,從八個方向深入探討(變量對齊,棧對齊,DMA對齊,結構體成對齊,Cache, RTOS雙堆棧等):地址鏈接

2、推薦一種超簡單的硬件位帶bitband操作方法,讓變量,寄存器控制,IO訪問更便捷,無需用戶計算位置:地址鏈接

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/124460.html

相關文章

  • STM32學習筆記 第二章 STM32資源介紹

    摘要:總線掛載的外設有等。外設地址映射片上外設區分為三條總線,根據外設速度的不同,不同總線掛載著不同的外設,掛載低速外設,和掛載高速外設。 第二章 STM32資源介紹 2...

    G9YH 評論0 收藏0
  • SPI、PCI、IIC、UART、GPIO、AXI4協議總結大全

    摘要:從設備使能信號,由主設備控制,只有該信號為預先規定的使能信號,對該芯片的操作才有效,這就允許再統一總線上連接多個設備。點對點通信中,接口不需要進行尋址操作,但是沒有指定的流控制,沒有應答機制確認是否接收到數據。 1、GPIO 通用可編程IO接口,對于簡單的外圍設備或者電路,需要CPU為之提供...

    zhangrxiang 評論0 收藏0
  • stm32 高效串口收發

    摘要:接收緩沖區和發送緩沖區的請求是獨立的。此時串口實際上還有個字節并未發送完成,數據寄存器和移位寄存器中的個字節還需要發送,并不能關閉串口發送。 文章目錄 串口通訊串...

    darkerXi 評論0 收藏0
  • DMA控制器原理詳解

    摘要:目錄工作原理硬件架構硬件架構通道的作用寄存器出現的目的出現的目的工作原理全拼直接內存存取,在傳統的存取數據時會先將數據放到緩存寄存器中然后在寫入到指定位置存取數據流程圖經歷了三個步驟,先將內存中指定位置 目錄 工作原理 DMA硬件架構 DMA通道的作用 DMA寄存器 DMA出現的目的 工作原...

    moven_j 評論0 收藏0
  • ESP32-S2上使用SPI接口芯片DM9051NP轉以太網無線物聯網網關開發指導

    摘要:前言芯片接口占用管腳數量比以太網的少,版線布局可更精簡。網卡芯片介紹接口網卡芯片是為方物聯網行業進以太網通信而開發出的解決方案。此應用可用于監控家庭物聯網網關搭建等。 前言 ????DM9051NP芯片?SPI接口占用管腳數量比以太網PHY的RMII/MII少,PCBA版線布局可更精簡。...

    wangjuntytl 評論0 收藏0

發表評論

0條評論

cgspine

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<