stm32 汇编文件如何引用外部结构体

stm32 汇编文件如何引用外部结构体,第1张

#define USART1 ((USART_TypeDef *) USART1_BASE)

即#define USART1 ((USART_TypeDef *) 0x4001 3800)

就句话的意好链思是,0X4001 3800是一个指改宽向USART_TypeDef结构体的指针,现在给这指针取了一个名字USART1。

至于这个0x4001 3800是怎核袜亮么来的,请看RM0008 Reference manual 文档51 页 TABLE3的第7行。

这样做是不对的

应该这样:

文件str.h

struct STR

{

int a

int b

}//注意这里不要声明变量

文件str.cpp

#include "str.h"

struct STR str//在这里声明

文件main.cpp

#include <stdio.h>

#include "str.h"

extern struct STR str//这样就可铅返以引用外部变量了

int main(void)

{

str.a = 8

return 0

}

总结:

1、#include只引用头文件,不要引用程序文件

2、#include只声明类型,不要声明变量,因为多次引用会对同一变量多次分配内存,是错误的重复定义;

3、变量定义必须放在槐喊饥程序体文件,渗枣这样在其他程序体只要声明extern就可以引用了

在头文件里锋段定义或基扒结构,例如:

typedef struct {

int a, b

} S

S s_instance

在其他文件里引用就衫昌可以。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/12257163.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-05-24
下一篇 2023-05-24

发表评论

登录后才能评论

评论列表(0条)

保存