OpenEdv-开源电子网

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

新手求助大佬帮忙看一下程序简化问题

[复制链接]

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-4-29
在线时间
12 小时
发表于 2019-4-29 14:52:33 | 显示全部楼层 |阅读模式
1金钱
关于用串口打印IO口状态的程序:
a1=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_0);
a2=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_1);
a3=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_2);
a4=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_3);
a5=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_4);
a6=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_5);
a7=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_6);
a8=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_7);
a9=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_8);
a10=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_9);
a11=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_10);
a12=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_11);
a13=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_12);
a14=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_13);
a15=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_14);
a16=GPIO_ReadInputDataBit(GPIOE,GPIO_Pin_15);
printf("%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d%d\n",a1,a2,a3,a4,a5,a6,a7,a8,a9,a10,a11,a12,a13,a14,a15,a16);

有什么办法简化吗?尝试了
t=GPIO_ReadInputData(GPIOE);
printf("%d",t);但好像不好使

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

22

主题

271

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2019-3-21
在线时间
107 小时
发表于 2019-4-29 14:53:45 | 显示全部楼层
回复

使用道具 举报

22

主题

271

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
405
金钱
405
注册时间
2019-3-21
在线时间
107 小时
发表于 2019-4-29 14:54:14 | 显示全部楼层
把a1到a16放在一个数组里,
回复

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-4-29 15:04:53 | 显示全部楼层
就用你尝试过的那个方法啊,为啥不好使。
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-4-29
在线时间
12 小时
 楼主| 发表于 2019-4-30 09:04:51 | 显示全部楼层
candylife9 发表于 2019-4-29 15:04
就用你尝试过的那个方法啊,为啥不好使。

不知道啊,这样写输出是一个5位数了
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-4-29
在线时间
12 小时
 楼主| 发表于 2019-4-30 09:06:54 | 显示全部楼层
1599064432 发表于 2019-4-29 14:54
把a1到a16放在一个数组里,

直接把IO口的状态赋值给数组吗,还是先给a1-a16,然后放数组里呢
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-4-29
在线时间
12 小时
 楼主| 发表于 2019-4-30 09:09:32 | 显示全部楼层

就是赋值给数组的时候,一直有问题才这样写了
回复

使用道具 举报

51

主题

2166

帖子

2

精华

论坛元老

Rank: 8Rank: 8

积分
10653
金钱
10653
注册时间
2017-4-14
在线时间
2780 小时
发表于 2019-4-30 09:14:34 | 显示全部楼层
本帖最后由 nashui_sx 于 2019-4-30 10:28 编辑
o丷o 发表于 2019-4-30 09:04
不知道啊,这样写输出是一个5位数了

5位数也是它呀,转成二进制不就是了

t=GPIO_ReadInputData(GPIOE);
char s[10];
itoa(t, s, 2);
printf("二进制 --> %s\n", s);
回复

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2019-4-29
在线时间
12 小时
 楼主| 发表于 2019-4-30 09:19:49 | 显示全部楼层
nashui_sx 发表于 2019-4-30 09:14
5位数也是它呀,转成二进制不就是了

t=GPIO_ReadInputData(GPIOE);

诶?5位数就是啊,那就没问题了,折腾了老半天,多谢大佬
回复

使用道具 举报

37

主题

596

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1574
金钱
1574
注册时间
2017-7-17
在线时间
308 小时
发表于 2019-4-30 10:22:39 | 显示全部楼层
o丷o 发表于 2019-4-30 09:19
诶?5位数就是啊,那就没问题了,折腾了老半天,多谢大佬

用printf("")哎,这基础没的说啊,这就基本的数制转换和printf打印格式问题啊。就像今天我穿的T恤你认识我,明天我换了件衬衣你就不认识我了。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-21 01:34

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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