完善资料让更多小伙伴认识你,还能领取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函数重新定向这个问题,就可以用这个函数了。
|
|
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2255 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
2071 浏览 3 评论
4687 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2215 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2757 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-27 08:26 , Processed in 0.445927 second(s), Total 50, Slave 43 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号