关注分享主机优惠活动
国内外VPS云服务器

各种数据类型的技能共享、通信和传输,如SPI、UART、I2C、FDCAN等。和存储到EEP。

编程手册和编程手册以及对各种数据类型(如内存)进行编程的简单方法。一般这些内存都是字节编程,不方便写浮点数据类型。

目录

背景知识

F1编程手册:

F3和F4编程手册:

F7和H7编程手册:

用各种数据类型对EEPROM、SPI Flash和其它存储器进行编程的简单方法

各种数据类型的SPI、UART、I2C和FDCAN的传输问题

实战案例:

展开粘贴,特别是结构的对齐:

背景各类知识数据的传输和存储都涉及到大小的问题,所以我们会在开头讲解这个知识点。

首先简单说一下芯片的尺寸,这里主要讨论Cortex-M核。权威指令如下:支持小端和大端内存系统e cortex -m3和cortex -M4处理器可以使用小端或bi。字节序存储系统。实际上,微控制器产品通常只设计一种端序配置。m内核支持大端或小端,实际应用中大部分内核都是小端。以STM32为例,都是小端,在芯片设计之初就固化了,无法修改。市面上其他厂商基本都固化了小端格式。

F1编程手册:

F3和F4编程手册:

F7和H7编程手册:

用各种数据类型对EEPROM、SPI Flash和其它存储器进行编程的简单方法。一般这些内存都是字节编程的,不方便写浮点数据类型。这里有一种定义结构和封装各种数据类型的方法:

用下面的方式写:

你可以用以下方式阅读:

SPI、UART、I2C、FDCAN和其他数据类型的传输。这里我们以串行通信为例。例如,主机应向从机发送以下格式数据:

我们可以做一个如下的结构格式:

typedef struct { uint8 _ t ucStartuint16 _ t usCO2uint16 _ t usPM25uint16_t湿润度;浮动温度;uint32 _ t ulParamuint8 _ t ucEnd1uint8 _ t ucEnd2} UART _ T;UART _ T g _ tUartParam当主机发送时,我们可以采用以下方法:

comSendBuf(COM1,(uint8_t *)&g_tUartParam,sizeof(UART _ T));从属工程也定义了相同的结构变量。例如,我们将接收到的数据帧存储在缓冲区uint8_t buf[50]中。

我们可以定义一个结构指针变量:

UART _ T * pUartParampUartParam =(UART _ T *)buf;然后,我们可以通过puartparam-> USCO2,puartparam-> tempo的方式进行访问,非常方便。

实际案例:可以下载我们论坛的V5,V6,或者V7板的工厂程序,都有相关代码可供参考。

膨胀贴,特别是结构找正问题:1。【烧脑技术贴】中无法回避的字节对齐问题,从八个方向(变量对齐、堆栈对齐、DMA对齐、结构对齐、缓存、RTOS双栈等)进行了深入探讨。):地址链接2。推荐一个硬件bitband的超简单操作方法,让变量和寄存器控制以及IO访问更加方便,不需要用户计算位置:。

未经允许不得转载:主机频道 » 各种数据类型的技能共享、通信和传输,如SPI、UART、I2C、FDCAN等。和存储到EEP。

相关推荐

评论 抢沙发

评论前必须登录!