STM32G0系列通过HAL库读取CPUID

发布者:温暖拥抱最新更新时间:2021-10-14 来源: eefocus关键字:HAL库 手机看文章 扫描二维码
随时随地手机看文章

STM32G070的CPUID地址:


/*!< Device Electronic Signature */

#define PACKAGE_BASE          (0x1FFF7500UL)        /*!< Package data register base address     */

#define UID_BASE              (0x1FFF7590UL)        /*!< Unique device ID register base address */

#define FLASHSIZE_BASE        (0x1FFF75E0UL)        /*!< Flash size data register base address  */

/**


HAL库已经预留了API可以直接读取:


/**

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

  * @retval Device identifier

  */

uint32_t HAL_GetUIDw0(void)

{

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

}


/**

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

  * @retval Device identifier

  */

uint32_t HAL_GetUIDw1(void)

{

  return (READ_REG(*((uint32_t *)(UID_BASE + 4U))));

}


/**

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

  * @retval Device identifier

  */

uint32_t HAL_GetUIDw2(void)

{

  return (READ_REG(*((uint32_t *)(UID_BASE + 8U))));

}


关键字:HAL库 引用地址:STM32G0系列通过HAL库读取CPUID

上一篇: J-Link RTT的使用(原理 + 教程 + 应用 + 代码)
下一篇:解决MDK仿真时候弹框Programming range...问题

推荐阅读最新更新时间:2024-11-13 10:21

STM32F1XX系列 HAL库 CAN大量收发数据
大量收发数据时,会产生收发数据0-3分钟后不再收发数据的现象,此时是由于库函数内部将CAN总线状态改为忙碌。 可在While(1)中填写如下代码 if( HAL_BUSY == HAL_CAN_Receive_IT(hcanx, CAN_FIFO0))//开启中断接收 { /* Enable FIFO 0 overrun and message pending Interrupt */ __HAL_CAN_ENABLE_IT(&hcan1, CAN_IT_FOV0 | CAN_IT_FMP0); }
[单片机]
标准库函数与基于HAL库函数的说明
开始学习51的时候有的人会直接选择进行对单片机的寄存器进行操作,可以很好的理解单片机的工作原理,对于代码的编写也会后很好的理解,但是在stm32的时候操作寄存器就不太行了,因为stm32的寄存器是51的数十倍,如此多的寄存器根本无法全部记忆,开发时需要经常的翻查芯片的数据手册,此时直接操作寄存器就变得非常的费力了。这是我们就有了其他的操作方式,来简化我们的工作。 一、标准库 STM32有非常多的寄存器,导致了开发困难,所以为此ST公司就为每款芯片都编写了一份库文件,也就是工程文件里stm32F1xx……之类的。在这些 .c .h文件中,包括一些常用量的宏定义,把一些外设也通过结构体变量封装起来,如GPIO口时钟等。所以我们只需
[单片机]
【STM32】HAL库-DMA
DMA 直接存储器存取(DMA)用来提供在外设和存储器之间或者存储器和存储器之间的高速数据传输。 无须CPU干预,数据可以通过DMA快速地移动,这就节省了CPU的资源来做其他操作。 DMA控制器和Cortex™-M3核心共享系统数据总线,执行直接存储器数据传输。当CPU和DMA同时访问相同的目标(RAM或外设)时,DMA请求会暂停CPU访问系统总线达若干个周期,总线仲裁器执行循环调度,以保证CPU至少可以得到一半的系统总线(存储器或外设)带宽。 DMA配置过程 DMA的数据对齐 一句话,如果目标的容量存放不了源数据,则只能尽可能存放源数据(小端模式) 操作一个不支持字节或半字写的AHB设备 当DMA模块开始一个
[单片机]
【STM32】<font color='red'>HAL库</font>-DMA
使用STM32hal库usart的接收中断分析及出现部分问题的解决
最近开始使用ST的hal库,这个库相较于之前的标准库,优缺点兼具吧,hal库封装了更多底层的细节,我们可以很轻易的实现我们需要的功能,但是由于封装了太多的细节,导致一旦出问题,你就很难发现问题,内部调用的复杂让你觉得懵逼。 (一)hal库接收中断的分析 这几天在使用hal库的USART,其中用到的是接收中断,官方推荐的使用接收中断的方式是:在初始化函数上面先开启接收中断(这里就不介绍串口的配置,网上一大推,我就不给世界增加无谓的存储量了),开启的函数如下: HAL_UART_Receive_IT(&huart2,(uint8_t*)aRxBuffer, 1);//该函数会开启接收中断:标志位UART_IT_RXNE,并且设
[单片机]
FreeRTOS移植,基于STM32 HAL库
一、硬件准备 一个STM32开发板(STM32F429IGT6),及其电源线等; 一个ST-Link下载器及其连接线等。 二、软件准备 FreeRTOS源码(V9.0.0); 一个基于STM32 HAL库的基础例程(跑马灯例程)。 三、移植FreeRTOS 3.1 添加FreeRTOS源码至工程 添加源代码至工程目录,添加至工程分组中,添加相关头文件路径 编译,提示找不到 FreeRTOSConfig.h 3.2 添加 FreeRTOSConfig.h 文件来源:事先参考众多例程中的 FreeRTOSConfig.h 后,总结出来的 编译结果为:2个error。SVC_Handler() 和 PendSV_Handler()
[单片机]
STM32 SPI调试之HAL库的调试
uint8_t aTxBuffer __attribute__((at(0x20000200))) = {0xaa, 0x00, 0x00}; 在没有上面的__attribute__((at(0x20000200))的时候,程序会进入Hardfault,进入的原因是程序不能从奇地址读取数据。 这个原因非常难找,我也是无语。对其的原因 API在中断里和应用程序里不同同时使用,否则会陷入死机。 中断和应用程序不能用同一资源。 void SPI_RF_WriteByte(uint8_t *WriteBuff, uint16_t Size) { HAL_StatusTypeDef status = HAL_ERROR; //
[单片机]
HAL库中断处理以及相关的回调函数
今天就分享一个读者问到的关于中断处理的问题。 很多人都知道STM32CubeMX这套工具的一个目的:减少开发者对STM32底层驱动的开发时间,把重心放在应用代码上。 但是,STM32CubeMX只是生成了底层驱动的初始化代码。所以,我们还需要掌握:应用层代码如何调用HAL库函数(API接口),以及HAL库中断处理机制等相关知识。 HAL库牵涉的内容较多,下面简单描述一下HAL库中断处理,以及相关的回调函数。 1HAL库中断处理机制 之前使用标准外设库开发时,中断程序(函数)由我们自己实现。 而HAL库的中断处理函数是按照HAL处理机制来实现,如USART1,统一由HAL_UART_IRQHandler来进行处理,如下图: 其
[单片机]
<font color='red'>HAL库</font>中断处理以及相关的回调函数
HAL库无法实现UART的DMA传输真是这样吗?
有人使用STM32H7芯片做些事情,发现基于ST公司的HAL库开发UART1的DMA收发时可以轻松实现,而当使用ST的LL库组织代码时,却没法实现UART的DMA传输。 感觉上就是使用HAL库编写代码功能正常而基于LL库则不行。真是这样吗? 使用STM32CubeMx进行图形化配置,并生成基于HAL库的初始代码,要实现UART收发功能的DMA传输的话,除了安排好的收发缓冲内存外,再就只需调用下面两个HAL库的API函数即可进行功能验证。 从功能实现上讲,使用HAL库及相应API还是很方便、很简单的。每个API函数就像个黑盒子,对于里面的内容,如果你不点进去阅读是不会知晓的。 不过,建议尽可能地多点进去瞧瞧,那里往往别有洞天。
[单片机]
<font color='red'>HAL库</font>无法实现UART的DMA传输真是这样吗?

推荐帖子

电力行业企业高薪招聘嵌入式开发人员!!
欢迎满足以下条件之一的有识之士与我们联系,公司网址:www.nerc.com.cn,发送简历邮箱地址:whl668@epri.ac.cn。1.具有2年以上电力行业嵌入式产品开发经验。2.电力系统自动化、继电保护等电力相关专业毕业,2年以上嵌入式产品开发经验。3.具有2年以上、4层以上PCB板制作经验。4.具有2年以上电力行业嵌入式产品电路设计经验。电力行业企业高薪招聘嵌入式开发人员!!因公司发展迅猛,业绩突出,薪水在业界属于中上等,何不多给自
bonxun 嵌入式系统
单片机双核了,网友怎么看?
LPC54100系列是NXP最近新出来单片机,它其中一个吸引人的特点就是双核的,在此之前好多网友反映没见过双核单片机。那么,网友怎么看待单片机的双核,是只是一个噱头,还是感觉是单片机的一个升级,让单片机更加的强大,是产品设计中的需要?(关于LPC54100双核的特性,见坛中NXPLPCMCU版块中网友们的分享)单片机双核了,网友怎么看?和PC/手机差不多,以前是单核,现在是多核MCU也是,当然MCU对应的也是被使用在类似PC/手机这种产品中发
nmg 单片机
用MSP432根除软件故障
转自deyisupport调试大型软件程序始终是一项具有挑战性的工作;通常情况下,很难知道从哪儿入手!MSP432低功率和高性能微控制器(MCU)为MSP系列MCU提供了一款高级调试工具:串行线输出(SWO)跟踪。这款工具有助于调试复杂项目、跟踪多个事件、分析应用性能统计数据、并且跟踪大幅的数据流程图。MSP432MCU特有一个ARM®Cortex®-M4FCPU,而ARM硬件提供了可被用于调试用途的模块。特别是,有两个组件—数据和观察点跟踪单元(
maylove 微控制器 MCU
E电源游戏-不及格
看来我真的需要努力了,没及格出错,地方:两个电容搞错了位置,想想还是后级需要用极性的,前面不用可以吗,求达人分析E电源,其实通过这个游戏就能够反映出他的特色了,化繁为简,两幅图可见。先截图,等人分析,再跟帖说e电源吧E电源游戏-不及格实际上它的这个题出得有问题的。实际设计时,电源的输入部分的波动大,一般采用滤高频+低频的形式,采用瓷片电容和电解电容并联。输出部分一般也是这样做。而电解电容一般使用的是有极性的。再一个是,应该有个电感的,这是这种电路所必须的器件。但题目中却没有。
lyzhangxiang 模拟与混合信号
【晒样片】+TI样片申请成功
论坛又在做TI的活动了,这次挑选的其中用的着的4种片子,赶紧申请,一次成功,下面嗮一下图,选择需要的芯片,加入购物车订单生成快递到来电商专配,加急!!!!!!!!这是申请到的片子,MSP430FR4133G56R,MSP430FR4133G48R,TPA3140D2PWPR@INA250A2PW。最后,感谢eeworld,感谢TI!大家都来申请吧!【晒样片】+TI样片申请成功记得很早以前点东,貌似都无货了。
morniglory TI技术论坛
点阵 I love u
用51单片机控制8*8点阵显示Iloveu流动显示,在不断的调试中终于有个大概的雏形,但是还有一点问题就是显示的时候没有消隐,总是感觉不好。希望大家帮我看看程序,以及给点改进的建议,大家一起学习!谢谢。演示视频:http://v.youku.com/v_show/id_XMzA1ODI1NzM2.html程序如下:#includereg52.h#defineucharunsignedchar#defineuintunsignedintuint
扫把鑫 51单片机
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved