OpenEdv-开源电子网

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

数据型转化为数值

[复制链接]

13

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2013-12-20
在线时间
8 小时
发表于 2015-7-10 10:33:31 | 显示全部楼层 |阅读模式
5金钱
我在利用原子的串口原代码写一个串口通讯,我要在串口发送一个字符,如何把它转化为数值型数据,把它作为一个函数的变量?
我是菜鸟,只能在原程序上改一改了

最佳答案

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

如果你发送变量 a,其值为字符 ‘1’,你只需要 a-'0'不就可以得到数字1了吗
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

4

帖子

0

精华

新手入门

积分
28
金钱
28
注册时间
2014-12-18
在线时间
0 小时
发表于 2015-7-10 10:33:32 | 显示全部楼层
如果你发送变量 a,其值为字符 ‘1’,你只需要 a-'0'不就可以得到数字1了吗
回复

使用道具 举报

13

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2013-12-20
在线时间
8 小时
 楼主| 发表于 2015-7-10 10:44:47 | 显示全部楼层
回复【2楼】90蓝雪:
---------------------------------
res=USART_ReceiveData(USART1)-'0';

printf("%d\n",res);
这样吗?
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2015-7-10 10:47:20 | 显示全部楼层
楼上说得对 但是你直接告诉他减去 0x30 会更清楚点
回复

使用道具 举报

13

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2013-12-20
在线时间
8 小时
 楼主| 发表于 2015-7-10 10:49:31 | 显示全部楼层
回复【2楼】90蓝雪:
--------------------------------
必须为数字型,因为要作为另一个函数的变量
回复

使用道具 举报

13

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2013-12-20
在线时间
8 小时
 楼主| 发表于 2015-7-10 10:55:48 | 显示全部楼层
回复【4楼】止天:
---------------------------------
好像不行啊! 显示出来了,但是不能作为变量在另一个函数里应用
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2015-7-10 11:01:29 | 显示全部楼层
整形变量=字符变量-0x30

不行吗?
回复

使用道具 举报

22

主题

751

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1605
金钱
1605
注册时间
2015-6-10
在线时间
222 小时
发表于 2015-7-10 11:06:56 | 显示全部楼层
回复【7楼】止天:
---------------------------------
num=0;
 
        

          for(i=0;i<(字符串个数-1);i++)
        {   
            
            num=num*10+字符串-'0';
          }>
回复

使用道具 举报

13

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2013-12-20
在线时间
8 小时
 楼主| 发表于 2015-7-10 11:07:11 | 显示全部楼层
回复【7楼】止天:
---------------------------------
printf("%d\n",res);
这样显示不对啊!
回复

使用道具 举报

13

主题

60

帖子

0

精华

初级会员

Rank: 2

积分
161
金钱
161
注册时间
2013-12-20
在线时间
8 小时
 楼主| 发表于 2015-7-10 11:18:38 | 显示全部楼层
回复【8楼】止天:
---------------------------------
for(t=0;t<len;t++)
{
USART_SendData(USART1,USART_RX_BUF[t]);
while((USART1->SR&0X40)==0);
}
res=USART_ReceiveData(USART1)-0x30;

printf("%u\n",res);    
USART_RX_STA=0;
                      ULN2003_Driver(res);
我也觉得是对的啊!
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-20 07:43

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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