STM32的问题

一、中文乱码

  1. KEIL中文件编辑时中文乱码
    修改
    configure
    ->Editor的Encoding解码格式为GB2312
  2. 串口输出时中文乱码
    文件的编码格式不对,重新新建文件确定编码格式为GB2312或UTF在将内容重新导入。

二、Extern的使用

对于管用较完善的编译器时,一般直接Include使用跨文件变量,编译器会自动判断include的文件中的变量在该文件中是定义还是声明。
而在MDK keil中不能直接用!!

首先重新说明一下头文件的作用:声明函数、变量等,一般不会有定义,用来给其他文件进行声明使用。

.c文件是对头文件定义的函数、变量等进行具体定义描述。

好了,进入正题:
若需要引用某文件中的变量,如果我们直接通过Include进行声明,会发现keil编译器会报多次定义的错误。multiply defined

如何解决?

  1. 方法一:
    所有要引用的外部文件变量或函数不使用include包含,改为extern声明。
  2. 方法二(推荐):
    函数用include包含,而所有需要跨文件使用的变量放在一个global.h中,在主文件程序中只include "global.h"一次,即只定义一次,对于其他需要引用的外部变量的文件中使用extern来声明。

总结:
KEIL中include头文件的变量均以定义变量来使用,所以变量的使用一般不用放在头文件中。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值