STM32中使用long long 型的数据以及数据的转换

STM32 的ADC使用指南 ADC,即模数转换器(Analog-to-Digital Converter),是一种在微控制器(如STM32)中常见的设备,它能够将模拟信号转换为数字信号。简单来说,我们的现实世界中大部分的信号都是模拟的,比如声音、光线强度、温度等,它们的变化是连续的。而微控制器是数字设备,它处理的是0和1的数字信号。ADC让我们可以读取模拟信号的值,然后将这个连续变化的信号转换成一系列数字,微控制器就可以读取这些数字进行进一步的处理了。 阅读详情
因为要保存运单号码,又不想使用字符串保存,所以就用了uint_64_t的类型保存数据,传输的时候要将其转为字节数组,使用联合体能方便进行转换
//8个字节长度的联合体,注意,因为M3是使用的小端模式,所以高字节的数据是保存在高地址中的
union  byte8
{
  uint64_t u64_buf;
  u8 u8_buf[8];
  u16 u16_buf[4];
  u32 u32_buf[2];

}4DWORD;

使用方式:例如一个运单号12345678901234;
转换为16进制的时候:
4DWORD.u64_buf=12345678901234;
12345678901234=0x 0B 3A 73 CE 2F F2
此时4DWORD.u8_buf[0]=0x0B
4DWORD.u8_buf[1]=0x3A
以此类推…

C语言的数据类型说明及STM32实例 C语言是一种通用的编程语言,广泛用于嵌入式系统的开发。在STM32的开发过程中,了解C语言的数据类型是非常重要的,因为它们提供了变量和数据在内存中存储和处理的方式。通过了解C语言的数据类型,以及在STM32上使用这些数据类型的示例代码,您可以更好地理解如何在嵌入式系统中进行变量的声明和操作。在C语言中,数据类型决定了变量可以存储的数据范围和可进行的操作。C语言提供了多种基本数据类型,包括整数类型、浮点数类型和字符类型。下面将详细介绍这些数据类型,并给出一些在STM32上使用这些数据类型的示例代码。 阅读详情

相关推荐

达梦的自定义类型和存储过程支持创建同义词,不支持同义词使用?

达梦8的自定义类型和存储过程支持创建同义词,但是通过同义词调用报错,而在oracle上验证没有问题,难道是发现了达梦的bug了?非也非也,详情请见下文

wy071218的专栏 979

嵌入式C语言学习记录(一)——数据类型

C语言数据类型

weixin_46304704的博客 1870

基于phpstudy搭建pikachu靶场

一、phpstudy下载安装配置 phpstudy介绍 简单介绍一下phpstudy,详细请参考百度解读。pikachu是基于PHP环境搭建的,需要数据库支持,所以装pikachu之前需要先安装它需要的环境,就像你养鱼需要给它提供水环境一样。安装phpstudy能满足pikachu的需求,所以先安装phpstudy。 phpStudy是一个PHP调试环境的程序集成包。该程序包集成最新的Apache+PHP+MySQL+phpMyAdmin+ZendOptimizer,一次性安装,无须配置即可使用,是

ptxybird的博客 1万+

STM32中常见的数据类型

可以表示-128~127的整数,这个名字有时候会名不对题,比如这个char本意是字符型数据的意思,按名字来说它就应该存放字符的,但是我们单片机通常用它来存放整数而不是字符,所以C语言和ST就给这些变量换了个名字,C语言提供的有stdlint.h这个头文件,使用了新的名字,比如int8_t就是char的新名字,表示的意思就是8位整型数据,打开STM32的stm32f10x.h,可以看到用typedef重新命名的变量类型。如果要用16位的数据,要用short来表示。高亮一栏的是在MDK中推荐使用的。

qq_46564477的博客 3164

mfcc总结,这个mel三角滤波器分组到底是如何起作用的呢?

先看fft频谱图(这是4096字节取样fft计算,横轴频率是从0到512,后边意义不大,未取,纵轴是振幅),那些我随便画的蓝色线,你有什么联想?: 再看,这绿色线,是否有一种上升后,便逐渐式微的感觉,都是三角形的,这或许也是mel当初和绝大多数人看到的: 如果在振幅上加上一条限制的黑线(振幅门槛限制),黑色线以下很多频率就没有意义了,你看,有用的频率连一半(512/2=256)都占不到...

ganggangwawa的博客 9908

基于迁移学习的花卉识别系统

本研究采用了预训练的经典深度学习模型,包括ResNet、AlexNet和VGG,通过微调的方式在Oxford-102数据集和一个自制花卉数据集上进行训练,并对图像进行了多种数据增强操作,以提高模型的泛化能力,致力于实现花卉的高效分类。

m0_71146337的博客 2376

stm32基础入门——C语言篇(上)

c语言数据基本类型 一.c语言基本数据类型 一、整型(int、short、long、long long) 1、有符号整型 有符号整型的数据类型通常包括 int、short、long、long long 四种,因为是有符号类型,所以前面要加上 signed ,但是通常省略,也就是说在代码中直接打出 int 类型就代表是有符号类型的。 (1)int类型 数据类型大小是 4 字节,能表示的数值范围是-2^(32-1) – 2^(32-1)-1 (即 -2147483648 ~ 2147483647) 打

weixin_63094577的博客 9334

Lattice HSB 相机方案

Lattice与NVIDIA合作的HSB相机方案提供低延迟视觉处理方案。该方案采用CertusPro-NX/Avant-E FPGA接收多路相机数据,通过10G/25G以太网直连GPU显存,实现端到端延迟<17ms、CPU占用<1%的高效处理。方案支持PTP同步、多种协议,适用于医疗、工业、车载等领域。相比传统方案,开发效率提升10倍以上,具有显著性能优势。部署需Lattice FPGA板、10G/25G交换机和Holoscan SDK等软硬件支持。

xzjiang_365的博客 754

记录stdint.h头文件

#ifndef __int8_t_defined # define __int8_t_defined typedef signed char int8_t; typedef short int int16_t; typedef int int32_t; # if __WORDSIZE == 64 typedef long int int64_t; #

ambition_bin1的博客 697

布尔可满足性问题(SAT)深度研究

布尔可满足性问题(Boolean Satisfiability Problem, SAT)是计算机科学和数理逻辑中的一个核心决策问题。其定义为:对于一个给定的布尔逻辑公式,判断是否存在一组对其变量的真值赋值(即,为每个变量指定真 (True) 或假 (False)),使得该公式的最终计算结果为真。如果存在这样的赋值,则称该布尔公式是可满足的 (satisfiable);否则,称其为不可满足的 (unsatisfiable)。

步子哥的博客 495

B站评论情感分析实战:Python批量爬取+BERT正负向分类,精准度92%(附完整代码)

用技术手段自动化挖掘用户真实情感,比人工分析更高效、更客观。这套方案的精度能稳定在90%左右,完全满足实际应用需求。

专注于Python爬虫开发,分享爬虫技巧、项目实战与反爬经验,使用Scrapy、BeautifulSoup等工具,解决数据抓取难题。 1026

笔记:STM32——使用ADC通道采集端口电压数据

1、ADC的介绍 ADC就是模数转换,就是将芯片的端口模拟量转化位数字量显示出来能够看得到这个比例值。 转换类型分三种: 1、逐次逼近型就是类似于二分查找法,当给定一个值然后与这个比较,大于这个值那么就是在这个值得以上到边界值,那么下一次比较就是在大于这个值到边界值得中间那个比较,然后在与这两个中间值比较。依次比较,直到找到这个值,这个算法复杂度在log2n。 2、双积分型就是它先对输入采样电压和基准电压进行两次积分,以获得与采样电压平均值成正比的时间间隔,同时在这个时间间隔内,用计数器对标准时钟脉

m0_64478952的博客 2万+

Pointnet++改进90:2025最新改进模块-EVA模块

本教程提出了一种改进PointNet++特征提取模块的方法,通过在PointNetSetAbstraction模块中加入NAMAttention注意力机制,显著提升了模型性能。具体改进包括:1)新建eva.py文件,实现了包含SDLSKA、CKS等关键组件的EVA模块;2)在pointnet2_utils.py中添加Conv和PointNetSetAbstractionAttention类,整合注意力机制;3)修改pointnet2_sem_seg.py模型结构。这种改进方法降低了实现难度,同时保持了33F

AIcurator的博客 361

STM32 ADC详解

目录 01、ADC简介 02、STM32的ADC外设 03、STM32ADC框图讲解 04、触发源 05、转换周期 06、数据寄存器 07、中断 08、电压转换 09、电路图设计 10、代码设计 01、ADC简介 ADC是Analog-to-DigitalConverter的缩写。指模/数转换器或者模拟/数字转换器。是指将连续变量的模拟信号转换为离散的数字信号的器件。典型的模拟数字转换器将模拟信号转换为表示一定比例电压值的数字信号。 从STM32F207的数据手册中下图看到,STM

人生一路,点滴记录 2万+

jre9下载 jdk9

(Java SE Runtime Environment 9.0) 9.0u175 官方最新版 【x86|x64】

深度学习工具包 DeepLearningToolbox

深度学习工具包Deprecation notice.-----This toolbox is outdated and no longer maintained.There are much better tools available for deep learning than this toolbox, e.g. [Theano](http://deeplearning.net/software/theano/), [torch](http://torch.ch/) or [tensorflow](http://www.tensorflow.org/)I would suggest you use one of the tools mentioned above rather than use this toolbox.Best, Rasmus.DeepLearnToolbox================A Matlab toolbox for Deep Learning.Deep Learning is a new subfield of machine learning that focuses on learning deep hierarchical models of data.It is inspired by the human brain's apparent deep (layered, hierarchical) architecture.A good overview of the theory of Deep Learning theory is[Learning Deep Architectures for AI](http://www.iro.umontreal.ca/~bengioy/papers/ftml_book.pdf)For a more informal introduction, see the following videos by Geoffrey Hinton and Andrew Ng.* [The Next Generation of Neural Networks](http://www.youtube.com/watch?v=AyzOUbkUf3M) (Hinton, 2007)* [Recent Developments in Deep Learning](http://www.youtube.com/watch?v=VdIURAu1-aU) (Hinton, 2010)* [Unsupervised Feature Learning and Deep Learning](http://www.youtube.com/watch?v=ZmNOAtZIgIk) (Ng, 2011)If you use this toolbox in your research please cite [Prediction as a candidate for learning deep hierarchical models of data](http://www2.imm.dtu.dk/pubdb/views/publication_details.php?id=6284)```@MASTERSTHESIS\{IMM2012-06284, author = "R. B. Palm", title = "Prediction as a candidate for learning deep hierarchical models of data", year = "2012",}```Contact: rasmusbergpalm at gmail dot comDirectories included in the toolbox-----------------------------------`NN/` - A library for Feedforward Backpropagation Neural Networks`CNN/` - A library for Convolutional Neural Networks`DBN/` - A library for Deep Belief Networks`SAE/` - A library for Stacked Auto-Encoders`CAE/` - A library for Convolutional Auto-Encoders`util/` - Utility functions used by the libraries`data/` - Data used by the examples`tests/` - unit tests to verify toolbox is workingFor references on each library check REFS.mdSetup-----1. Download.2. addpath(genpath('DeepLearnToolbox'));Example: Deep Belief Network---------------------```matlabfunction test_example_DBNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit RBM and visualize its weightsrand('state',0)dbn.sizes = [100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);figure; visualize(dbn.rbm{1}.W'); % Visualize the RBM weights%% ex2 train a 100-100 hidden unit DBN and use its weights to initialize a NNrand('state',0)%train dbndbn.sizes = [100 100];opts.numepochs = 1;opts.batchsize = 100;opts.momentum = 0;opts.alpha = 1;dbn = dbnsetup(dbn, train_x, opts);dbn = dbntrain(dbn, train_x, opts);%unfold dbn to nnnn = dbnunfoldtonn(dbn, 10);nn.activation_function = 'sigm';%train nnopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.10, 'Too big error');```Example: Stacked Auto-Encoders---------------------```matlabfunction test_example_SAEload mnist_uint8;train_x = double(train_x)/255;test_x = double(test_x)/255;train_y = double(train_y);test_y = double(test_y);%% ex1 train a 100 hidden unit SDAE and use it to initialize a FFNN% Setup and train a stacked denoising autoencoder (SDAE)rand('state',0)sae = saesetup([784 100]);sae.ae{1}.activation_function = 'sigm';sae.ae{1}.learningRate = 1;sae.ae{1}.inputZeroMaskedFraction = 0.5;opts.numepochs = 1;opts.batchsize = 100;sae = saetrain(sae, train_x, opts);visualize(sae.ae{1}.W{1}(:,2:end)')% Use the SDAE to initialize a FFNNnn = nnsetup([784 100 10]);nn.activation_function = 'sigm';nn.learningRate = 1;nn.W{1} = sae.ae{1}.W{1};% Train the FFNNopts.numepochs = 1;opts.batchsize = 100;nn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.16, 'Too big error');```Example: Convolutional Neural Nets---------------------```matlabfunction test_example_CNNload mnist_uint8;train_x = double(reshape(train_x',28,28,60000))/255;test_x = double(reshape(test_x',28,28,10000))/255;train_y = double(train_y');test_y = double(test_y');%% ex1 Train a 6c-2s-12c-2s Convolutional neural network %will run 1 epoch in about 200 second and get around 11% error. %With 100 epochs you'll get around 1.2% errorrand('state',0)cnn.layers = { struct('type', 'i') %input layer struct('type', 'c', 'outputmaps', 6, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %sub sampling layer struct('type', 'c', 'outputmaps', 12, 'kernelsize', 5) %convolution layer struct('type', 's', 'scale', 2) %subsampling layer};cnn = cnnsetup(cnn, train_x, train_y);opts.alpha = 1;opts.batchsize = 50;opts.numepochs = 1;cnn = cnntrain(cnn, train_x, train_y, opts);[er, bad] = cnntest(cnn, test_x, test_y);%plot mean squared errorfigure; plot(cnn.rL);assert(er<0.12, 'Too big error');```Example: Neural Networks---------------------```matlabfunction test_example_NNload mnist_uint8;train_x = double(train_x) / 255;test_x = double(test_x) / 255;train_y = double(train_y);test_y = double(test_y);% normalize[train_x, mu, sigma] = zscore(train_x);test_x = normalize(test_x, mu, sigma);%% ex1 vanilla neural netrand('state',0)nn = nnsetup([784 100 10]);opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samples[nn, L] = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.08, 'Too big error');%% ex2 neural net with L2 weight decayrand('state',0)nn = nnsetup([784 100 10]);nn.weightPenaltyL2 = 1e-4; % L2 weight decayopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex3 neural net with dropoutrand('state',0)nn = nnsetup([784 100 10]);nn.dropoutFraction = 0.5; % Dropout fraction opts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex4 neural net with sigmoid activation functionrand('state',0)nn = nnsetup([784 100 10]);nn.activation_function = 'sigm'; % Sigmoid activation functionnn.learningRate = 1; % Sigm require a lower learning rateopts.numepochs = 1; % Number of full sweeps through dataopts.batchsize = 100; % Take a mean gradient step over this many samplesnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex5 plotting functionalityrand('state',0)nn = nnsetup([784 20 10]);opts.numepochs = 5; % Number of full sweeps through datann.output = 'softmax'; % use softmax outputopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, train_x, train_y, opts);[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');%% ex6 neural net with sigmoid activation and plotting of validation and training error% split training data into training and validation datavx = train_x(1:10000,:);tx = train_x(10001:end,:);vy = train_y(1:10000,:);ty = train_y(10001:end,:);rand('state',0)nn = nnsetup([784 20 10]); nn.output = 'softmax'; % use softmax outputopts.numepochs = 5; % Number of full sweeps through dataopts.batchsize = 1000; % Take a mean gradient step over this many samplesopts.plot = 1; % enable plottingnn = nntrain(nn, tx, ty, opts, vx, vy); % nntrain takes validation set as last two arguments (optionally)[er, bad] = nntest(nn, test_x, test_y);assert(er < 0.1, 'Too big error');```[![Bitdeli Badge](https://d2weczhvl823v0.cloudfront.net/rasmusbergpalm/deeplearntoolbox/trend.png)](https://bitdeli.com/free "Bitdeli Badge")

【STM32】STM32学习笔记-ADC模数转换器(21)

小容量产品是指闪存存储器容量在16K至32K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。中容量产品是指闪存存储器容量在64K至128K字节之间的STM32F101xx、STM32F102xx和STM32F103xx微控制器。大容量产品是指闪存存储器容量在256K至512K字节之间的STM32F101xx和STM32F103xx微控制器。互联型产品是指STM32F105xx和STM32F107xx微控制器。12位ADC是一种逐次逼近型模拟数字转换器。

Print World的专栏 1万+

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

stm32c语言long型数据多少位,stm32 C语言的数据类型说明

该文章参考和转载:http://www.cnblogs.com/wangh0802PositiveANDupward/archive/2013/01/01/2841697.html。stm32编程过程经常定义变量类型,经常担心数据运算过程中 超过变量类型范围。因为在编程过程中,不同的CPU,其数据类型的意义各不相同,所以一定要注意相应变量数据类型的定义和转换,否则在计算中可能会出现不确定的错误。所...

weixin_29159711的博客 3147

Camera2Demo

在Camera2 的基础上进行封装,使得Camera2一堆初始化逻辑与Activity分离,降低耦合度,完成预览拍照并保存的操作

STM32学习记录0011——AD转换

一、

qq_43441284的博客 1万+

STM32 Cubemx 使用AD转换获取温度值

获取传感器的值通常都需要模电 数电的知识,放大信号 数模转换等等处理。 这篇文章主要讲AD转换 并应用使用热敏电阻通过查表法和计算法获取温度值 应用演示 链接 AD基本原理 ADC 全称:Analog to Digital Concerter,称为模/数转换器或者模拟/数字转换器。是指将连续变化的模拟信号转换为离散的数字信号的器件。 [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来...

Nie_Hen的博客 7724

STM32 ADC转换实验

STM32 ADC 简介 STM32 拥有 1~3 个 ADC(STM32F101/102 系列只有 1 个 ADC),这些 ADC 可以独立使用,也可以使用双重模式(提高采样率)。STM32 的 ADC 是 12 位逐次逼近型的模拟数字转换器。它有 18 个通道,可测量 16 个外部和 2 个内部信号源。各通道的 A/D 转换可以单次、连续、扫描或间断模式执行。ADC 的结果可以左对齐或右对齐方式存储在 16 位数据寄存器中。 模拟看门狗特性允许应用程序检测输入电压是否超出用户定义的高/低阀值。 STM3

weixin_44234294的博客 4263

STM32 ADC转换器、串口输出

STM32 ADC转换器

ganhui13000的博客 6301

STM32之模数转换器(ADC)

STM32之数模转换器(ADC)与五相按键操作

weixin_52483742的博客 2930

ADC模数转换在stm32上的应用

ADC是"Analog-to-Digital Converter"(模数转换器)的缩写。它是一种电子器件或电路,用于将连续变化的模拟信号(如电压或电流)转换为数字信号(通常是二进制码),这样计算机和数字设备就可以处理这些信号。在许多电子系统中,比如音频设备、通信系统、测量仪器等,ADC都是一个关键组件。通过ADC,真实世界的物理信号(如声音、温度、压力等)可以被转换成数字形式,进而被微处理器或计算机分析和处理。分辨率:表示转换后的数字信号能表示多少个离散值,通常以位数表示(例如8位、12位、16位等)

weixin_73497355的博客 1623

【STM32 ADC】

学习ADC转换的基本原理,学会使用STM32配置ADC转换功能ADC(ANalog-Digital Converter)模拟-数字转换器;ADC可以将引脚上连续变化的模拟电压转化为内存中存储的数字变量,建立模拟电路到数字电路的桥梁;12为逐次逼近型ADC,1us的转换时间(转换频率为1MHZ);输入电压范围0~3.3V,转换结果范围:0 ~ 4095;

weixin_46187287的博客 5333

STM32学习之ADC模数转换器

ADC(Analog-Digital Converter)模拟-数字转换器,简称模数转换器,AD转换器。ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁。12位逐次逼近型ADC,1us转换时间分辨率,一般用多少位来表示,12位AD值表示范围是:0到2的12次方减1,就是量化结果的范围是0到4095,位数越高量化结果就越精细对应分辨率就越高。

努力努力在努力的博客 2204

利用 STM32 TIMER 触发 ADC 实现分组转换

使用 STM32G4 系列芯片开发产品,用到其中一个 ADC 模块的多个通道,他希望使用 TIMER 来定时触发这几个通道的转换。不过他有两点疑惑。第一,他期望定时器触发这几个通道是每触发一次则只转换一个通道,这样依次触发转换,而不是触发一次就把几个通道都转换完结。他不知这样是否可行?第二,既然是 TIMER 每触发一次就转换一次,如果说某个通道正在转换时来了触发,这个触发事件是否会丢失?是否会导致最终转换的数据混乱。

u014319604的博客 2630

STM32 ADC模数转换

ADC(Analog-Digital Converter)模拟-数字转换器ADC可以将引脚上连续变化的模拟电压转换为内存中存储的数字变量,建立模拟电路到数字电路的桥梁12位逐次逼近型ADC,1us转换时间。12位是分辨率,1us是转换频率,就是1MHz。输入电压范围:0 ~ 3.3V,转换结果范围:0~409518个输入通道,可测量16个外部和2个内部信号源。2个内部的是温度传感器和内部参考电压。温度传感器可以测量CPU温度。内部参考电压是一个1.2V左右的基准电压。

Hungry_11的博客 1808
上一篇: c语言结构体数据对齐问题
下一篇: 关于STM32莫名死机的一些问题记录
CallMeSumo
博客等级 码龄10年 82粉丝 18原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值