HAL库好就好在都封装好了,我们只需要调取API都搞定了。

uint32_t UIDw[3];

uint32_t HalVersion = HAL_GetHalVersion();

uint32_t REVID = HAL_GetREVID();

uint32_t DEVID = HAL_GetDEVID();

UIDw[0] = HAL_GetUIDw0();

UIDw[1] = HAL_GetUIDw1();

UIDw[2] = HAL_GetUIDw2();

在文件stm32l1xx_hal.c可找到需要的函数。

/**

* @brief Return the HAL revision

* @retval version: 0xXYZR (8bits for each decimal, R for RC)

*/

uint32_t HAL_GetHalVersion(void)

{

return __STM32L1xx_HAL_VERSION;

}

以上图为例,__STM32L1xx_HAL_VERSION是宏定义

/**

* @brief STM32L1xx HAL Driver version number

*/

#define __STM32L1xx_HAL_VERSION_MAIN (0x01) /*!< [31:24] main version */

#define __STM32L1xx_HAL_VERSION_SUB1 (0x04) /*!< [23:16] sub1 version */

#define __STM32L1xx_HAL_VERSION_SUB2 (0x00) /*!< [15:8] sub2 version */

#define __STM32L1xx_HAL_VERSION_RC (0x00) /*!< [7:0] release candidate */

#define __STM32L1xx_HAL_VERSION ((__STM32L1xx_HAL_VERSION_MAIN << 24)\

|(__STM32L1xx_HAL_VERSION_SUB1 << 16)\

|(__STM32L1xx_HAL_VERSION_SUB2 << 8 )\

|(__STM32L1xx_HAL_VERSION_RC))

好像这个没什么用,咱们改这个没意义。那我们直接看UID。

/**

* @brief Return the first word of the unique device identifier (UID based on 96 bits)

* @retval Device identifier 31:0 bits

*/

uint32_t HAL_GetUIDw0(void)

{

return(READ_REG(*((uint32_t *)UID_BASE)));

}

UID_BASE是地址

#define UID_BASE (0x1FF80050UL) /*!< Unique device ID register base address for Cat.1 and Cat.2 devices */

这几个函数实际上就是读地址内的数据。实验完毕。

linux读取stm32唯一识别码,STM32HAL内部识别码,全球唯一识别码,UID读取相关推荐

  1. C# 生成全球唯一标识符

    全球唯一标识符由128位整数组成,你可以利用它进入任何一台需要输入唯一标识符的电脑或任何一个需要唯一标识符的网络.Tony Patton讲解了.NET Framework是怎样教你创建自己的全球唯一标 ...

  2. linux中用户识别码,C语言中设置用户识别码的相关函数的简单讲解

    C语言setuid()函数:设置真实的用户识别码 头文件: #include 定义函数: int setuid(uid_t uid); 函数说明: setuid()用来重新设置执行目前进程的用户识别码 ...

  3. STM32 进阶教程 9 - 芯片维一码(UID)读取

    前言 在嵌入式设备开发过程中有时会需要为设备设置唯一的ID用以标识设备唯一,比如要求同一总线上的所有设备ID不能重复,要求设备具体唯一的MAC地址等等.其实STM32的及其它类型的MCU如ATMEL, ...

  4. STM32 ADC采样使用内部参考电压

    整理也能进步!写得清楚才能理解更深. [问题背景] 在使用ADC时,通常的用法是Vref+接电源VDD3.3V,然后计算时直接用3.3V做参考电压,但是这种方法忽略了一些情况如供电电压有可能随外部一些 ...

  5. STM32 之 供电系统及内部参照电压(VREFINT)使用及改善ADC参考电压和ADC校准

    STM32 之 供电系统及内部参照电压(VREFINT)使用及改善ADC参考电压 发布时间:2018-12-21 10:50, 浏览次数:1553 , 标签: STM VREFINT ADC < ...

  6. linux 文件唯一标识符,详解Linux中获取全球唯一标示符UUID的方法

    UUID(Universally Unique IDentifiers),全球唯一标示符.它是一个标识系统中的存储设备的字符串,使其确定系统中的所有存储设备. 为什么要使用UUID?因为系统自动分配的 ...

  7. stm32的unique ID全球唯一码

    我经常把STM32的全球唯一码作为 网卡的MAC地址,但有一天我发现 我发现,我的2个板子 的MAC地址一样,造成只能有一个ping通. 我查看这2个板子的单片机的UNIQUE ID,发现非常接近. ...

  8. java怎样生成32位全是整形的主键_用java生成32位全球唯一的id编号

    GUID是一个128位长的数字,一般用16进制表示.算法的核心思想是结合机器的网卡.当地时间.一个随即数来生成GUID.从理论上讲,如果一台机器每秒产生10000000个GUID,则可以保证(概率意义 ...

  9. 身份证读取设备开发解决方案:2、Android下通过usb转串口读取身份证信息

    身份证读取设备开发解决方案:2.Android下通过usb转串口读取身份证信息 文章目录 身份证读取设备开发解决方案:2.Android下通过usb转串口读取身份证信息 1. 前言 2. 准备 3. ...

  10. 打包部署后无法读取jar包里的文件(实测可行,Java中读取jar包中的文件)

    打包部署后无法读取jar包里的文件 Java中读取jar包中的文件 linux中无法读取jar包中的内容(windows可以的!),如何解决 一.背景 项目中免不了需要读取文件,如果文件用绝对路径读取 ...

最新文章

  1. WSP框架:WEB组件的原理
  2. 一个很好的分页存储过程
  3. java重写6,java重写equals()方法和hashCode()方法
  4. 常用有话帧检测技术(VAD)
  5. 刚刚,阿里云上线六大“战疫情”项目
  6. Java ObjectStreamClass lookup()方法与示例
  7. 帝国cms文章内容tags关键词设置调用方法以及tags静态化
  8. 阿里云CentOS 7.4安装Zabbix 4.2
  9. SQL中GROUP BY用法示例
  10. android接收红外传感器发送的脉冲信号,怎么判断红外发送和接收管?
  11. java qq音乐接口 api,QQ音乐API分析(示例代码)
  12. 神经网络可视化工具Netron
  13. ORAN接收窗监测和UL U平面发送窗
  14. 计算机培训研修心语,学子榜样 | 2018级国家励志奖学金程春旭:不忘初心,砥砺前行...
  15. MPU6050介绍及姿态解算
  16. 理解矩阵和特征向量的本质
  17. 腾讯内部兵法:做产品和运营必须深参这5大人性弱点
  18. AUTOSAR架构的故事(干货)
  19. 机器学习必备:2018年前20名Python人工智能和机器学习开源项目
  20. 互联网日报 | 名创优品潮玩全球首店开业;百度昆仑1芯片实现量产;特斯拉在华超充站突破600座...

热门文章

  1. 洛谷 P2712 摄像头
  2. 学点PYTHON基础的东东--数据结构,算法,设计模式---访问者模式
  3. css实现垂直居中6种方法
  4. MapReduce 规划 系列十 采用HashPartitioner调整Reducer计算负荷
  5. js 阻止冒泡 在控件的 onxxx 事件中调用就可以阻止父控件也响应消息了
  6. C++ 学习笔记之——STL 库 vector
  7. linux 编译程序的四个过程
  8. 视频监控市场发展潜力大 六个阻碍待突破
  9. 基于DPI(深度报文解析)的应用识别2------实际分析
  10. Apache配置站点与虚拟目录