完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
扫一扫,分享给好友
我从串口接受回来的是0X01和0XF4,现在需要将它们转成0X01F4,再转成十进制数,最后 打印到显示屏上,但是我显示屏用的是ILI9341_DispString_EN ( 60, 60, che, macBACKGROUND, macRED )这样的函数,只能显示字符型数据,请问大家有没有好的思路转化成十进制数,想了一天了,在网上找了以下的函数在C语言中可以实现,但在STM32中就不行,因为上面用到了printf函数
#include #include #include int func(char s[],int x); void main() { char a[1]={0XF4}; int n; int num; //printf("请输入一串十六进制数:"); //scanf("%s",a); n=strlen(a); num=func(a,n); printf("%s=%d",a,num); } int func(char s[],int x) { int i; int num=0; for(i=x-1;i>=0;i--) { if(s[i]>='0'&&s[i]<='9') { num+=(int)((s[i]-'0')*pow(16,x-i-1)); } if(s[i]>='a'&&s[i]<='f'){ num+=(int)((s[i]-'a'+10)*pow(16,x-i-1)); } if(s[i]>='A'&&s[i]<='F'){ num+=(int)((s[i]-'A'+10)*pow(16,x-i-1)); } } return num; } |
|
相关推荐
4个回答
|
|
可以使用结构体与共同体。
|
|
|
|
很简单的进制转换么
|
|
|
|
做个循环就可以吧?
|
|
|
|
如果这个程序可以,只是碍于printf函数的话,可以搜一下printf函数重新定向这个问题,就可以用这个函数了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
使用stm32l451片子,对ad7606进行3通道100k采样值跳动问题?
1060 浏览 1 评论
STM32进行DMA数据转运,为什么只有A组最后一位数据被转运到B组去?
1541 浏览 2 评论
1852 浏览 3 评论
1447 浏览 0 评论
嵌入式开发 Win11安装ST-Link 提示 设备描述符请求失败 怎么处理?
1584 浏览 0 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-8-25 17:22 , Processed in 0.407748 second(s), Total 46, Slave 39 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191