OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2813|回复: 3

变量在usart.c里面定义后,怎么可以在main.c里面使用

[复制链接]

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
发表于 2020-9-5 11:08:32 | 显示全部楼层 |阅读模式
1金钱
如题,在原子的串口实验里面,usart.c里面定义了USART_RX_STA
  1. u16 USART_RX_STA=0;       //接收状态标记
复制代码
USART_RX_STA在main.c里面是没有定义的,可是却可以直接拿来使用
  1. if(USART_RX_STA&0x8000)
  2.                 {                               
  3.                         len=USART_RX_STA&0x3fff;//得到此次接收到的数据长度
  4.                         printf("您发送的消息为:\r\n");
  5.                         for(t=0;t<len;t++)
  6.                         {
  7.                                 USART_SendData(USART1, USART_RX_BUF[t]);//向串口1发送数据
  8.                                 while(USART_GetFlagStatus(USART1,USART_FLAG_TC)!=SET);//等待发送结束
  9.                         }
复制代码
我仿照这个格式,在usart.c里面定义了一个变量aaaaa;结果在main.c里面使用的时候报错为未定义。请问是为什么?



最佳答案

查看完整内容[请看2#楼]

extern uint8 USART_RX_STA; usart.h里应该有这样一句。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

16

帖子

0

精华

初级会员

Rank: 2

积分
53
金钱
53
注册时间
2019-6-15
在线时间
9 小时
发表于 2020-9-5 11:08:33 | 显示全部楼层
extern uint8 USART_RX_STA;

usart.h里应该有这样一句。
回复

使用道具 举报

48

主题

179

帖子

0

精华

初级会员

Rank: 2

积分
185
金钱
185
注册时间
2017-6-19
在线时间
90 小时
 楼主| 发表于 2020-9-5 11:45:14 | 显示全部楼层
本帖最后由 王大爷爱吃鱼 于 2020-9-5 11:46 编辑
leebilly007 发表于 2020-9-5 11:26
extern uint8 USART_RX_STA;

usart.h里应该有这样一句。

是的,谢谢,又学习了一招abcd是我自己加的,这样就可以在main里面使用了
  1. extern u8  USART_RX_BUF[USART_REC_LEN]; //接收缓冲,最大USART_REC_LEN个字节.末字节为换行符
  2. extern u16 USART_RX_STA;                         //接收状态标记        
  3. extern u16 abcd;   
复制代码


回复

使用道具 举报

3

主题

821

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
3369
金钱
3369
注册时间
2011-11-10
在线时间
207 小时
发表于 2020-9-6 18:21:03 | 显示全部楼层
“规则1.7 只能通过包含头文件的方式使用其他.c提供的接口,禁止在.c中通过extern的方式使用外部
函数接口、变量。
说明:若a.c使用了b.c定义的foo()函数,则应当在b.h中声明extern int foo(int input);并在a.c
中通过#include <b.h>来使用foo。禁止通过在a.c中直接写extern int foo(int input);来使用foo,
后面这种写法容易在foo改变时可能导致声明和定义不一致。”
以上是华为的C语言军规。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-17 14:22

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表