OpenEdv-开源电子网

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

C语言小白问题

[复制链接]

7

主题

26

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-7-19
在线时间
19 小时
发表于 2017-4-18 15:01:09 | 显示全部楼层 |阅读模式
5金钱
有F-1引脚输出变量Q1,Q1又与数组ARR[10]中第5个元素等值。
#define Q1 PFout(1)   //默认引用了正点原子的写好的PFout(n)源代码
#define Q1 ARR[4]

这样的话,系统就会警告Q1被重复定义了,不知道这样有问题吗?或者应该怎样改呢?ARR[10]数组是用在modbus中读写位状态的

最佳答案

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

先定义 #define Q1 PFout(1) 然后,使用的时候用赋值语句 Q1=ARR[4]; 不就完了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2017-3-11
在线时间
15 小时
发表于 2017-4-18 15:01:10 | 显示全部楼层
先定义
#define Q1 PFout(1)

然后,使用的时候用赋值语句
Q1=ARR[4];
不就完了
回复

使用道具 举报

3

主题

261

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
2075
金钱
2075
注册时间
2014-2-20
在线时间
284 小时
发表于 2017-4-18 17:57:14 | 显示全部楼层
先不说语法上的,F-1引脚输出变量Q1,你这里 #define Q1 PFout(1),Q1就变成一个固定的地址了,而不是输出变量。
回复

使用道具 举报

7

主题

26

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-7-19
在线时间
19 小时
 楼主| 发表于 2017-4-18 21:50:05 | 显示全部楼层
Da Wen 发表于 2017-4-18 17:57
先不说语法上的,F-1引脚输出变量Q1,你这里 #define Q1 PFout(1),Q1就变成一个固定的地址了,而不是输出变 ...

我写错了,不是输出变量,Q1是固定输出地址。但我想将Q1与数字中ARR[5]等价关联起来,那得怎样写啊?
回复

使用道具 举报

50

主题

1805

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6662
金钱
6662
注册时间
2016-5-29
在线时间
910 小时
发表于 2017-4-18 22:57:49 | 显示全部楼层
我突然感觉楼主智商超级高.只是目前的编译器不支持.这种表达方式.宏定义有点呆板.
回复

使用道具 举报

7

主题

26

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-7-19
在线时间
19 小时
 楼主| 发表于 2017-4-24 11:10:49 | 显示全部楼层
maple2 发表于 2017-4-18 15:01
先定义
#define Q1 PFout(1)

ARR[4]或Q1都是在系统运行时是不停变动的,如果一直Q1=ARR[4]是比较麻烦,而且Q1=ARR[4]只是当ARR[4]变化后,将其赋值给Q1,忽略了Q1变化后赋值给ARR[4]。这就和宏定义不一样了。
回复

使用道具 举报

7

主题

26

帖子

0

精华

新手上路

积分
28
金钱
28
注册时间
2016-7-19
在线时间
19 小时
 楼主| 发表于 2017-4-24 11:12:36 | 显示全部楼层
版主,这答案不是最佳答案啊。。。
回复

使用道具 举报

3

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
118
金钱
118
注册时间
2017-3-11
在线时间
15 小时
发表于 2017-4-28 19:00:04 | 显示全部楼层
dipolo 发表于 2017-4-24 11:10
ARR[4]或Q1都是在系统运行时是不停变动的,如果一直Q1=ARR[4]是比较麻烦,而且Q1=ARR[4]只是当ARR[4]变化 ...

你想让数组元素ARR[4]变化后能自动更新引脚F1,那是不可能的,无论你想出什么机制达到了这一目的,都离不开手动赋值Q1=ARR[4],相比之下,一句Q1=ARR[4]永远是最简单的。很明显,这种想法已经走到了死胡同尽头。建议换个思路!看你的意思好像是要让ARR[4]与F1引脚的值双向同步(ARR[4]能改变F1,F1也能改变ARR[4])。纳尼?那不是要频繁更改引脚方向(输入/输出),还不是很麻烦!实在不明白你的意思
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-17 15:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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