Closed. This question is off-topic. It is not currently accepting answers. Learn more。
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
两年前关闭。
我想与STM32芯片的存储器on-topic交互,首先读取并存储其电子签名(MCU-ID),然后在其存储器中写入数据。我正在使用连接到JTAGSTM32L476的STM32QFP64套接字。
我很擅长C语言,但真正开始嵌入式编程,所以我选择了ST-LINK,因为它看起来很完整,而且是基于我之前已经使用过的Eclipse。
我的问题是,我找不到一种列有函数、变量等的文档,我可以用来与芯片交互。我已经搜索了ST站点上几乎所有的pdf文件,阅读了ST的GitHub,但是由于我是一个初学者,我可能会错过这些信息,因为我不知道我正在搜索的是什么样子的。
下面的代码是不可逆转的,完全是想象出来的,但它可以帮助理解我正在尝试做的事情,我这样描述:
因此,在这种情况下,甚至更普遍地说:
1)我应该在哪里查找此类文档?
2)这些函数和变量是否根据我正在处理的STM32芯片而改变?
3)如果不是在StackExchange上,我在哪里可以找到1)和2)的答案?
想改进这个问题吗?Update the question所以堆栈溢出的值小于aa>。
两年前关闭。
我想与STM32芯片的存储器on-topic交互,首先读取并存储其电子签名(MCU-ID),然后在其存储器中写入数据。我正在使用连接到JTAGSTM32L476的STM32QFP64套接字。
我很擅长C语言,但真正开始嵌入式编程,所以我选择了ST-LINK,因为它看起来很完整,而且是基于我之前已经使用过的Eclipse。
我的问题是,我找不到一种列有函数、变量等的文档,我可以用来与芯片交互。我已经搜索了ST站点上几乎所有的pdf文件,阅读了ST的GitHub,但是由于我是一个初学者,我可能会错过这些信息,因为我不知道我正在搜索的是什么样子的。
下面的代码是不可逆转的,完全是想象出来的,但它可以帮助理解我正在尝试做的事情,我这样描述:
#define MEMORY_ADRESS_MCU_ID FFFFF // A memory adress ( I should be able to find it in STM32L476 documentation)
#define MEMORY_ADRESS_TO_WRITE FFFF // Same
unsigned extractMCUID() {
return READ_IN_MEMORY(MEMORY_ADRESS_MCU_ID); // Returns the ID stored in a particular memory adress
}
void writeData(char* d) {
WRITE_IN_MEMORY(MEMORY_ADRESS_TO_WRITE, d); // Writes data in specified memory adress
}
因此,在这种情况下,甚至更普遍地说:
1)我应该在哪里查找此类文档?
2)这些函数和变量是否根据我正在处理的STM32芯片而改变?
3)如果不是在StackExchange上,我在哪里可以找到1)和2)的答案?
最佳答案
STM为每个MCU发布几种类型的文档,我很难猜测哪个文档将包含我正在查找的信息。因此,我在文档中搜索相关的关键字,直到缩小信息范围。最重要的两个文档是数据表和参考手册,所以我总是从它们开始。
在本例中,我开始搜索Datasheet中的“MCU-ID”,但什么也没有找到,所以我搜索了更通用的“ID”,并发现它与更具体的关键字“unique”相关联。我在数据表中搜索“unique”,但没有找到注册地址信息。于是我在Reference Manual中搜索“unique ID”,并在第1808页第49.1节中找到寄存器的基址。
是的,这样的细节可以从一个STM MCU更改为下一个,因此您需要确保使用正确的数据表和参考手册。然而,STM提供了一个称为STM32Cube的硬件抽象层(HAL),它抽象出类似这样的MCU特定细节,并允许您调用更多与MCU无关的通用函数。
编辑:我可能把你指错了身份证登记簿。Clifford在评论中指出,在地址0xE0042000处有一个MCU设备ID寄存器。此MCU设备ID寄存器不同于唯一设备ID寄存器,参考手册第1782页第48.6.1节对此进行了说明。
关于c - 在C中与STM32芯片的内存进行交互,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/43805259/
10-12 07:36