今天在进行STM32内部falsh存储的时候,发现固件库历程的函数原型是这样的:第一个是地址,在我的STM32中是2K一页的,第二个是要写入的数据。问题就来了,存储一个小数该怎么办呢?固件库给的是整形数据啊!三种解决办法:第一:最具大众性的把小数乘以系数放大,当做整数存储,然后再除以放大系数得到小数本身。例如 float a=1.23; int b=a*100;把b存进去,取出来的时候
最近要写个串口间通信的程序,要求PC端输入消息到串口1,然后stm32内部把该消息通过串口2转发出去,串口2得到消息返回,则通过串口1打印在PC端。实际上总体效果就是要是连接了设备的串口2具有串口1的功能,以便观察设备返回的信息以作后续的处理。使用的芯片是stm32l151,采用中断接收方式,把串口2所收到的消息全部打印出来。一开始直接参考原子的程序以接收回车键判断接收一次数据结束,实际上这样做的
这片文章主要是讲解原子给的代码里面的串口中断的中断函数,前面是我个人的学习路径。关于stm32串口的学习,主要分为以下几个点 1.USART的功能和内部结构。 功能包括同步、异步模式、双工通信、半工通信等 内部结构,参考这张图片,去把各个部分了解清楚就差不多了。2.USART的相关寄存器,看一看有个映像就可以了,主要了解一下这些寄存器对应上面的图,设置哪一部分的就ok了。 3.USART的收发格式
DMA:直接储存区访问,DMA传输将数据从一个地址空间复制到另一个空间。DMA传输方式无需CPU直接控制传输,也没有中断处理方式那样保留现场和恢复现场过程,通过硬件为RAM何IO设备开辟一条直接传输数据的通道,从而可以提高CPU的效率。一般用到DMA,主要作用为CPU减负。 我们用STM32CubeMX来配置一下串口的DMA实现收发。 选择芯片: 根据自己的电路设计情况配置时钟,我用的外部晶振25
转载
2024-09-05 13:17:12
419阅读
目录一.什么是SPI二.SPI协议物理层协议层1.通讯时序图2.起始和停止信号3.数据有效性4.通讯模式三.STM32中的SPI简介功能框图1.通讯引脚2.时钟控制逻辑3.数据控制逻辑4.整体逻辑控制初始化结构体初始配置函数发送、接收一个字节头文件四.资源链接一.什么是SPISPI是串行外设接口(Serial Peripheral Interface)的缩写,SPI是一种高速、全双工、同步通信的通
转载
2024-03-18 16:23:31
1931阅读
折腾了两天ADC多通道采样,采样的结果都很乱,完全不是预期值。在amobbs求助也没有找到结果。于是决定从简单开始,一步步折腾着破ADC。 【ADC试验1实验说明】 1、这个实验仅仅是初始化一个ADC,对其输入进行采样。 &nb
转载
2024-08-09 14:29:25
823阅读
1.原理通过定时器每隔一段时间触发一次DAC转换,然后通过DMA发送正玄波码表值给DAC.当需要改变频率HZ时,只需要修改定时器频率即可(最高只能达到20KHz)当需要改变正玄波的正峰峰值/负峰峰值时,只需要修改正玄波码表即可2.实现代码如下所示(采用的是定时器2,DAC引脚是PA4) #define HZ(x) (u16)(72000000/sizeof(Sine12bit)*2/x)
最近使用G030F6做了两个很小项目,觉得这个片子挺好用的,常规时期价格也很便宜,所以开源下我的项目源码的框架,去掉了项目逻辑。
转载
2021-11-09 16:18:38
5684阅读
2评论
文章目录1. STM32那些事儿2. 硬——STM32硬件电路设计3. 软——STM32编程4. 开始——STM32起步必备软件:资料:拓展学习: 1. STM32那些事儿STM32系列专为要求高性能、低成本、低功耗的嵌入式应用设计的ARM Cortex®-M0,M0+,M3, M4和M7内核,按内核架构分为不同产品:主流产品(STM32F0、STM32F1、STM32F3)、超低功耗产品(ST
转载
2024-06-21 22:05:58
241阅读
第5章 ThreadX操作系统移植(MDK AC6)本章节将为大家介绍ThreadX内核的MDK AC6方式移植和设计框架,理论上不建议初学者直接学习,因为本章节涉及到的知识点很多,建议对ThreadX的应用有一些了解后再来看,这样将事半功倍。但是本章的工程模板框架一定要学习。虽然本章节是以我们开发板为例进行移植的,但是教会大家如何移植到自己的板子上以及移植过程中的注意事项
文章目录一、地址和寄存器映射二、GPIO地址映射1.总线基地址2. 外设基地址3.外设寄存器三、C 语言对寄存器的封装1.封装总线和外设基地址2.封装寄存器列表四、GPIO端口的初始化及相关原理1.时钟配置2.输入输出模式设置与最大速率设置3.控制引脚输出电平五、实现过程1.准备材料2.创建工程3.main.c具体代码1)C语言编程实现流水灯2)汇编语言实现流水灯4.烧录5.接线六、实验效果七、
STM32F103系列点灯程序点灯流程1.找到LED灯对应寄存器引脚的基地址1.1在原理图上找到LED灯的位置1.2找到LED灯对应的引脚1.3打开数据手册找到对应的基地址2.设置PE5、PB5寄存器模式为推挽输出模式2.1配置PE5、PB5为推挽输出模式2.2 配置PE5、PB5输出低电平实现LED灯亮3 打开GPIO端口E和B对应的时钟3.1 找到时钟对应得基地址3.2 打开GPIO对口B和
目录一、数码管原理1、LED数码管的结构2、LED数码管工作原理3、数码管动态显示1)动态显示的概念2)动态显示的接口二、代码的实现三、仿真结果展示本篇文章将继续进一步了解GPIO外设输出模式一、数码管原理知道这一部分的朋友可以直接点击目录部分跳过这段跳过,这里介绍一下数码管的知识1、LED数码管的结构不管在嵌入式STM32中还是在单片机51中,我们经常采用LED数码管来显示我们系统的状态、运算结
我们先来看一个例子,你可以猜猜运行结果是啥: public class Test {
public static void main(String args[]) {
System.out.println(0.05 + 0.01);
}
} 如果以前你没有接触过浮点数运算的话,可能会比较意外,不过你要相信你确实没有看错,结果是 0.0600000000000
转载
2024-08-14 11:20:17
240阅读
总体说来,定点数的优点在于运行速度比浮点数快,缺点是设计时比较麻烦,要通过malab在stm32上实现IIR的定点滤波程序,需要按照以下步骤来实现。 1.通过仿真确定内部状态值的范围,范围定的误差越小,精度越高,但容易出现饱和现象。 首先使用fdatool创建一个IIR滤波器,这里我们仍然设计一个2阶高通滤波,类型选切比雪夫I型,截止频率300Hz,量化方法采用浮点数,然后将该滤波器实例化,生成
STM32使用OLED显示浮点数引 言实验准备第一版 引子程序最终程序主程序最终效果 引 言自己在做项目的过程中需要使用一个很小的显示屏来实时显示一组来自传感器的数据,然而当我选定了OLED,并且信心满满地写好所有驱动程序第一次上电测试时,却发现怎么都显示不了小数,什么情况?于是习惯性地打开了CSDN,搜索STM32 OLED 显示浮点数,但是~,试了好几种方法,都不怎么好用,不是显示位数不准确,
转载
2024-04-24 14:45:12
354阅读
属于Cortex-M4构架,与M0、M3的最大不同就是有硬件浮点运算FPU,数学计算速度相比普通cpu运算快上几十倍。想要使用FPU首先包含#include “arm_math.h”,还有在keil的target选项中勾选use single precision。 1.1 简单的FPU运算性能测试100ms定时器,定时串口打印计算次数,优化级别是0
转载
2024-05-05 08:20:59
1876阅读
前言人生如逆旅,我亦是行人。1、STM32H7的DSP功能介绍(STMicroelectronics,简称ST)推出新的运算性能创记录的H7系列微控制器。新系列内置STM32平台中存储容量最高的SRAM(1MB)、高达2MB闪存和种类最丰富的通信外设,为实现让智慧更高的智能硬件无处不在的目标铺平道路。STM32H7系列沿用STM32F7系列的ARM Cortex-M7处理器内核,是业界首款采用40
转载
2024-04-28 09:49:58
2825阅读
第9章 ThreadX任务管理对于初学者,特别是对于没有RTOS基础的同学来说,了解ThreadX的任务管理非常重要,了解任务管理的目的就是让初学者从裸机的,单任务编程过渡到带OS的,多任务编程上来。搞清楚了这一点,那么ThreadX学习就算入门了。目录第9章 ThreadX任务管理9.1 单任务系统9.1.1 &n
转载
2024-08-31 23:06:08
66阅读
在网上看了一下关于DSP的库的开发环境设置,写的有些乱,现在来整理一下,做一下MARK吧!
步骤如下:
1 . 建立工程,添加相关必要的文件到工程中。
2. 打开 option for target 选择 Target 标签,在code generatio中,将floating point hardware 选择 USE FPU。
转载
2024-06-03 21:04:47
184阅读