OpenEdv-开源电子网

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

串口接收的是字符型的十六进制如何转换为二进制后控制相应的IO口

[复制链接]

3

主题

12

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-9-18
在线时间
16 小时
发表于 2019-12-28 16:49:39 | 显示全部楼层 |阅读模式
20金钱
单片机与串口助手通信,助手发来的是一个八位的字符型的十六进制数如(ffffffff)单片机接收后如何把这个数据变成一个二进制数用相应的位去控制IO口的转态,如为0 则代表相应位为低电平,为1则为高电平。(如助手发了一个f0则换成二进制是 1111 0000 那吗与之对应的四个IO口为高电平另外四个就是低电平).

最佳答案

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

GPIOA->ODR = 你的数据
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6660
金钱
6660
注册时间
2015-8-25
在线时间
1034 小时
发表于 2019-12-28 16:49:40 | 显示全部楼层
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-9-18
在线时间
16 小时
 楼主| 发表于 2019-12-29 17:27:39 | 显示全部楼层
不是这样的,我的要求是发送一个16进制的数据转换成二进制要控制四个IO口
回复

使用道具 举报

3

主题

12

帖子

0

精华

新手上路

积分
30
金钱
30
注册时间
2019-9-18
在线时间
16 小时
 楼主| 发表于 2019-12-29 17:28:26 | 显示全部楼层
szczyb1314 发表于 2019-12-28 16:49
GPIOA->ODR = 你的数据







不是这样的,我的要求是发送一个16进制的数据转换成二进制要控制四个IO口
回复

使用道具 举报

33

主题

1628

帖子

0

精华

论坛元老

Rank: 8Rank: 8

积分
6660
金钱
6660
注册时间
2015-8-25
在线时间
1034 小时
发表于 2019-12-29 20:03:23 | 显示全部楼层
guominSTM32 发表于 2019-12-29 17:28
不是这样的,我的要求是发送一个16进制的数据转换成二进制要控制四个IO口

我给你举个例子,我串口发送一个u16型数据控制GPIOA的16个IO口
我发0x0001控制GPIOA0为高其他为低,那么就是GPIOA->ODR = 0X0001即可;
我发0x8001控制GPIOA0\GPIOA15为高其他为低,那么就是GPIOA->ODR = 0X8001即可;
给ODR寄存器赋值就是控制对应的GPIO为高为低,去查这个寄存器的描述即可知道
你要是纠结16机制转为2进制的事,那你就得好好再学习学习单片机了,在机器的世界里没有10进制 8进制 16进制,只有0和1组成的二进制。其他的进制都是为了方便表示提出来的,而单片机也只认二进制,单片机的运算处理全部绝对绝对都是基于二进制进行的
He who fights with monsters should look to it that he himself does not become a monster, when you gaze long into the abyss, the abyss also gazes into you.
过于执着就会陷入其中,迷失自己,困住自己。
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-5-20 17:45

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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