假设有一个浮点数 float FL = 3.14159267 (和圆周率很像啊),它在计算中的是怎样存储的呢?步骤1: 转换为二进制表示,浮点数分为整数部分和小数部分,对于该浮点数来说,整数部分为3,浮点数部分为0.14159267. 这里假设FL是4个字节,32浮点数表示. 十进制 二进制 3 【0000,0011】 0.14159267 【0010,0100,0011,1111,0110
GD32F103读写内部FLASH测试环境:STM32F103C820KBytes RAM64KBytes F
原创 2023-02-01 21:33:22
3443阅读
IIC笔记I2C总线的特点1、它是一个支持多设备的总线。总线上多个设备共用的信号线,在一条I2C的总线钟,可链接多个I2C的通讯设备,支持多个主机和多个从机2、一条I2C总线只使用两条线路,一条是双向串行数据显(SDA),另外一条是串行时钟线(SCL)。双向串行数据线用于传输数据,串行时钟线用于数据收发同步3、每一个连接到总线的设备都有一个独一无二的地址,主机可以通过这些地址进行不同设备的访问4、
Windows下,搭建开源STM32/GD32开源IDE环境脱离盗版,使用vscode+GCC+openocd+cmsisDAP,linux下同理实践了一遍,挑了干货,快速完成平台搭建加入仿真中需要的.svd获取说明,用于看外设PERIPHERALS的寄存器makefile推荐stm32cube生成的,然后做修改。对比了下不同的makefile,涉及到FPU部分的编译,用最简单的makefile可
一、教程简介 本章主要是对MINI-GD32F103C8T6 凌智基础开发 板的硬件进行介绍,以及一些对应的电路原理进行说明。对应的原理图以及生成的库文件都在资料文件里面有提供,可以直接使用。图1 设计原理图 二、相关事项 1、核心处理器 本次开发教程所用的单片机型号是GD32F103C8T6,将其所有引脚进行定义引出。图2 核心处理器 2、复位电路 这是一个比较典型的复位电路,我们在开发过程中,
转载 2024-07-05 04:11:02
1596阅读
stm32之间直接传送浮点数的实现方法指针变换小端模式字节流发送端接收端 指针变换一个变量,如果长度大于一个字节,就可以拆分为多个字节;同时,也可由多个字节合成一个变量。数据传输过程一般就是采用发送端拆分,接收端合成。其中指针变换语句是核心:int x; x=*((int*)&x);其中x=指向该地址((强制指针类型转换)取地址); 该表达式可以将任意地址的几个字节“识别”为某一个类型
一、工具  1、硬件:GD32F30x系列单片机  2、编译环境:KEIL  3、Flash芯片:GD25Q256DF二、芯片介绍GD25Q256DF是一款256M-bit(32Mbyte)的串行Flash,使用的是SPI通讯。该芯片的页大小、扇区大小及其详细信息如下表所示:  其它详细信息请阅读数据手册,这里不再赘述。 三、SPI驱动程序 SPI驱动程序使用的是硬件
转载 2024-04-25 14:31:00
534阅读
目前常见的STM32GD32系列的MCU芯片都具有唯一UIDUID是唯一标识符(unique identifier),在STM32系列微控制器的每一颗芯片都具有全球唯一的标识符,该标识符为128位二进制序列。因此我们可以利用芯片UID的唯一性对程序进行加密,使每一个产品中的程序也具有唯一性,即使非法使用者获取了MCU中的程序复制到其他芯片中也是不能正常运行的,从而达到保护开发者的知识产权不被侵犯
原创 2022-06-30 13:17:27
1680阅读
1评论
文章目录一.ADC简介二.ADC功能框图讲解1.电压输入范围2.输入通道3.转换顺序4.触发源5.转换时间6.数据寄存器7.中断8.电压转换三.初始化结构体四.单通道电压采集1.头文件2.引脚配置函数3.NVIC配置函数4.ADC配置函数5.中断函数6.主函数一.ADC简介STM32f103系列有3个ADC,精度为12位,每个ADC最多有16个外部通道。其中ADC1和ADC2都有16个外部通道,A
  在基础实验成功的基础上,对串口的调试方法进行实践。硬件代码顺利完成之后,对日后调试需要用到的printf重定义进行调试,固定在自己的库函数中。  b) 初始化函数定义:  void USART_Configuration(void); //定义串口初始化函数  c) 初始化函数调用:  void UART_Configuration(void); //串口初始化函数调用  初始化代码:  vo
目录背景说在前面工作流程寄存器介绍ADC寄存器ADC->CR2DMA寄存器DMA2_Stream0 ->CR程序TIM3ADC1DMA开启顺序尾声 背景有一次我想在407上跑4096点的FFT,如果用软件触发ADC的方式(最简单)思路就是开定时器,在定时器中断中开触发,但是经过测试,实际效果的话,低速的情况下,准度还可以,但是速率一旦上去,如500K后,效果非常差。后来看了网上以及4
指令索引ABS绝对值ACS反余弦ADF加法ASN反正弦ATN反正切CMF比较浮点值CNF比较取负的浮点值COS余弦DVF除法EXP指数FDV快速除法FIX转换浮点值成整数FLT转换整数成浮点值FML快速乘法FRD快速反向除法LDF装载浮点值LFM装载多个浮点值LGN自然对数LOG常用对数MNF传送取负的值MUF乘法MVF传送值/浮点寄存器到一个浮点寄存器NRM规格化POL极化角POW幂RDF反向除
转载 2024-09-15 20:58:37
327阅读
1.明确三个步骤板子采用的是stm32最小系统板stm32f103c8t6,根据原理图得知C13管脚低电平点亮led寄存器点灯需要以下3步:1.查看stm32f103ct86中文手册,可以得知要配置通道APB2上的GPIOC时钟,操作如下:第一步: 找总线AHB外设使能时钟寄存器的地址,复制起始地址,左边是起始地址,右边是终止地址第二步:找APB2外设使能时钟寄存器的偏移地址,复制偏移地址,加上面
前些天理解了fft变换的理论和对其工程应用进行了实例分析,详见我的名为《C语言实现fft理论基础与工程应用的实例分析》的博客,用C语言编写的fft算法比较容易看懂,但带来的缺点就是执行效率低,对于要求实时操作(例如电机控制)的反应速度不够灵敏。本篇内容将简要分析STM32自带的DSP库文件,其用汇编语言编写,代码执行效率明显优于C语言,ST公司封装好了了库文件,我们不必看懂其汇编代码,只要会调用
stm32 ADC 简介stm32的ADC是 12位逐次逼近型 模拟数字转换器;它包括18个通道,可以用来测量16个外部通道和2个内部通道.ADC转换的结果存放在16位数据寄存器(ADC规则数据寄存器,ADC_DR 和 ADC注入数据寄存器,ADC_JDCx)中,这个数据寄存器可以设置对齐方式为左对齐或右对齐.ADC通道与GPIO对应表(图片来自整点原子STM32F1开发指南库函数版本)规则通道组
引言笔者接触嵌入式领域软件开发以来,几乎用的都是 ARM Cortex-M 内核系列的微控制器。感谢C语言编译器的存在,让我不用接触汇编即可进行开发,但是彷佛也错过了一些风景,没有领域到编译器之美和CPU之美,所以决定周末无聊的休息时间通过寻找资料、动手实验、得出结论的方法来探索 ARM CPU 架构的美妙,以及C语言编译器的奥秘。(因为我个人实在是不赞同学校中微机原理类课程的教学方法)。一、浮点
学习资料:《野火零死角玩转STM32——F103》EXTIEXTI——外部中断/事件控制器。可单独配置中断或者事件,及触发事件的属性(?)。 中断编程步骤1.初始化产生中断的GPIO当GPIO作为中断的输入源时(如按键按下产生中断),需要初始化GPIO,配置为输入模式。如配置GPIOC13作为输入源:GPIO_InitTypeDef GPIO_InitStruct; //初始
       ARM 处理器并不支持浮点运算 (Floating Point Math)。所有的浮点运算都是在浮点运算模拟器上进行,因此特别缓慢。需要浮点运算的函式,常要耗费数千个循环才能执行完毕。这就是为何游戏开发时,通常都使用定点 (Fixed Point) 格式的运算。定点运算实际上是使用整数,但指定固定数目的位元做為数值的分数部份。就好像是指定某一数
一、STM32F103知识总结-GPIO1.GPIO的工作方式:2.GPIO的相关函数:3.GPIO的初始化:4.GPIO设置:(1).GPIO置0,置1:(2).读GPIO电平/数据: 1.GPIO的工作方式:GPIO支持4种输入模式(浮空输入、上拉输入、下拉输入、模拟输入)和4种输出模式(开漏输出、开漏复用输出、推挽输出、推挽复用输出)。同时,GPIO还支持三种最大翻转速度(2MHz、10M
转载 2024-03-02 09:06:35
264阅读
GPIO是芯片和外界沟通的桥梁,GPIO有很多模式,不同的模式有不同的配置,应用于不同的场合。STM32F103系列的I/O引脚共有8种工作模式,输入模式有四种浮空输入上拉输入下拉输入模拟输入其中输出模式有四种:推挽输出开漏输出复用推挽输出复用开漏输出通过百问网对STM32F103GPIO部分的学习,这部分又深入了一些。浮空输入浮空输入是 STM32 复位之后 默认模式。浮空输入模式是相对于上拉或
转载 2024-06-06 16:45:32
143阅读
  • 1
  • 2
  • 3
  • 4
  • 5