stm32之间直接传送浮点数的实现方法指针变换小端模式字节流发送端接收端 指针变换一个变量,如果长度大于一个字节,就可以拆分为多个字节;同时,也可由多个字节合成一个变量。数据传输过程一般就是采用发送端拆分,接收端合成。其中指针变换语句是核心:int x; x=*((int*)&x);其中x=指向该地址((强制指针类型转换)取地址); 该表达式可以将任意地址的几个字节“识别”为某一个类型
一、STM32F103知识总结-GPIO1.GPIO的工作方式:2.GPIO的相关函数:3.GPIO的初始化:4.GPIO设置:(1).GPIO置0,置1:(2).读GPIO电平/数据: 1.GPIO的工作方式:GPIO支持4种输入模式(浮空输入、上拉输入、下拉输入、模拟输入)和4种输出模式(开漏输出、开漏复用输出、推挽输出、推挽复用输出)。同时,GPIO还支持三种最大翻转速度(2MHz、10M
GPIO是芯片和外界沟通的桥梁,GPIO有很多模式,不同的模式有不同的配置,应用于不同的场合。STM32F103系列的I/O引脚共有8种工作模式,输入模式有四种浮空输入上拉输入下拉输入模拟输入其中输出模式有四种:推挽输出开漏输出复用推挽输出复用开漏输出通过百问网对STM32F103GPIO部分的学习,这部分又深入了一些。浮空输入浮空输入是 STM32 复位之后 默认模式。浮空输入模式是相对于上拉或
浮点数和定点数的关系理解一直以来,程序中接触的数据类型都是int整型,char字符型,float单精度浮点型,double双精度浮点型。看到浮点和定点一直不知道如何划分这个概念的范畴。以为浮点就是float表示小数,定点就是int可表示整数而已。经过学习明白了显然是错误的。应该是这样划分的:浮点:小数点非固定的数,可表示数据范围较广,整数,小数都可表示。包含float,double;定点:小数点固
我们平常所使用的CPU为定点CPU,意思是进行整点数值运算的CPU。当遇到形如1.1+1.1的浮点运算时,定点CPU就遇到大难题了。对于32位单片机,利用Q化处理能发挥他本身的性能,但是精度和速度仍然不会提高很多。现在设计出了一个新的CPU,叫做FPU,这个芯片专门处理浮点数的运算,这样处理器就将整点数和浮点数分开来处理,整点数交由定点CPU处理而浮点数交由FPU处理。我们见到过TI的DSP,还
1.内核与存储器:2. 时钟和复位电路名称缩写频率外部连接功能用途特性外部高速晶体振荡器HSE4~16MHz4~16MHz晶体系统时钟/RTC成本高,温漂小外部低速晶体振荡器LSE32kHz32.768kHz晶体带校准功能RTC成本高,温漂小内部高速RC振荡器HSI8MHz无经出厂调校系统时钟成本低,温漂大内部低速RC振荡器LSI40kHz无带校准功能RTC成本低,温漂大 外部晶振的成本
  对程序员来说,用来表示小数的浮点类型是最常接触到的基础数据类型之一。它包括单精浮点数(float,4字节)和双精浮点数(double,8字节)两种。但为何称表示小数的数据类型为浮点类型呢?顾名思义,所谓浮点即指小数中的小数点是可浮动的,但它是如何浮动的呢?能不能不浮动?  其实,计算机中表示小数的数据类型可以分为定点数和浮点数两种。只是因为定点数表示小数
1.ADC采用值转换成具体的物理量值ADC采样值在寄存器中是16位整形数据,要转换成具体的电压量,则必须进行换算。例如12位的转换精度,满量程的二进制为0000 1111 1111 1111,对应十进制数为1095,对应的电压为3.3V。所以计算公式为            &n
       ARM 处理器并不支持浮点运算 (Floating Point Math)。所有的浮点运算都是在浮点运算模拟器上进行,因此特别缓慢。需要浮点运算的函式,常要耗费数千个循环才能执行完毕。这就是为何游戏开发时,通常都使用定点 (Fixed Point) 格式的运算。定点运算实际上是使用整数,但指定固定数目的位元做為数值的分数部份。就好像是指定某一数
1. 浮点数原理简介1.1 IEEE浮点表示IEEE浮点标准用V=(-1)^s * M * 2^E的形式来表示一个数:符号(sign) s是符号位,1表示负,0表示正阶码(exponent) E的作用是对浮点数加权,这个权重是2的E次幂,取值范围(单精度-128~127,双精度-1024~1023)尾数(signifi
目录一:输入模式1.1:模拟输入1.2: 浮空输入 1.3:上拉输入 1.4:下拉输入1.5: 为什么没有复用输入配置模式 二:输出模式2.1:推挽输出2.2:开漏输出 2.3:复用推挽输出2.4:复用开漏输出 一:输入模式1.1:模拟输入模拟输入(GPIO_Mode_AIN):这种输入方式和浮空输入非常相似,都不接入内部的上拉和下拉电阻,它们二者
ADC简介    STM32F103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,ADC3一般有8个外部通道,各通道的A/D转换可以单次、连续、扫描或间断执行,ADC转换的结果可以左对齐或右对齐储存在16位数据寄存器中。ADC的输入时钟不得超过14MHz,其时钟频率由PCLK2分频产生。ADC功能框图讲解&n
发现问题项目开发过程中,中断中要计算几个浮点数,仿真时发现浮点数经常性计算错误:计算结果不可能是负值,但却会计算出负值,而且与真实结果完全没有关联性.当时单片机使用的是STM32F429ZGT6,主频设置为192MHz,运行RTOS,开了十个定时器中断.以及几个外部中断可能的原因因为执行的函数是在中断中,而且这个函数还挺长,两三百行,所以想到是有可能进中断次数太多,导致栈溢出.将栈调大至0x100
       以下只是个人学习的要点和个人观点,若整理的知识要点有问题,可以提出来,一起学习进步,嘻嘻嘻。       自毕业一年以后,我和我的一位学长住在了一起,最近和他探讨学习中,我被他喷的一无是处,作为一个嵌入式开发工程师,我的底子太薄了,所以我要重新学习单片机。      &nbs
转载 1月前
126阅读
  浮点运算一直是定点CPU的难题,比如一个简单的1.1+1.1,定点CPU必须要按照IEEE-754标准的算法来完成运算,效率低下。虽然对32为单片机来说,将浮点数进行Q化处理能充分发挥32位单片机的运算性能,但是精度会受到限制。而对于有FPU(浮点运算单元)的单片机来说,浮点加法只是几条指令的事情。  STM32F4xx属于Cortex M4F架构,这和M0、M3的最大不同就是多了一个F-fl
文章目录前言1. 移植FreeRTOS2. 测试FreeRTOS3. 移植工程 前言该篇环境为:STM32F103ZET6、Keil 库函数版本 F4、F7、H7移植同理。FreeRTOS源码:链接:https://pan.baidu.com/s/10l8TmseEJKkFdwFY3qZc1Q?pwd=8uqw 提取码:8uqw1. 移植FreeRTOS选取平时编程的一个库函数工程进行移植。
一、STM32 启动过程 通过Boot引脚设定,寻找初始地址 初始化栈指针 __initial_sp 指向复位程序 Reset_Hander 设置异常中断 HardFault_Handler 设置系统时钟 SystemInit 调用C库函数 _main二、介绍GPIO GPIO 8种工作模式(gpio_init.GPIO_Mode): (1) GPIO_Mode_AIN 模拟输入 (2) GPIO
以下是从嵌入式系统设计的角度,对ATmega328P、STM32F103C8T6、和nRF52832三款微控制器的比较。这份比较覆盖了核心性能参数、外设功能、封装尺寸等,特性 / 参数ATmega328PSTM32F103C8T6nRF52832核心AVR 8位ARM Cortex-M3 32位ARM Cortex-M4F 32位最大时钟频率20 MHz72 MHz64 MHz程序存储空间32KB
前言RT-Thread官网有很多通过IDE一键移植的方法,本文选择的是手动移植,文末提供移植好的完整工程。RT-Thread 有3个版本,分别是标准版本、Nano版本、Smart版本,本文选择的是最简单的Nano版本,RT-Thread Nano 是一个极简版的硬实时内核,其架构如下:其启动流程如下,黄色表示 libcpu 移植相关的内容(RT-Thread提供的libcpu文件已完成 ),绿色部
1.什么是ARMARM是一家芯片设计企业,也是对一大类微处理器的统称。2.什么是STM32ST:意法半导体(一个公司名),是一个SOC企业 M——Microelectronics的缩写即微控制器,M0、M3、M4 32——32位,表示是一个32位微控制器STM32的芯片结构图3.STM32F10x最常见的系列STM32F101 基本型系列,主频为36MHz STM32F102USB 基本型系列,主
  • 1
  • 2
  • 3
  • 4
  • 5