关于keil中sprintf()函数死机的问题
2018-12-14 来源:eefocus
前段时间在使用KEIL V4 来给我的LPC1768单片机编写程序,但程序总是有bug,经常有时候能运行,有时候又会死机,跟踪调试了一下,发现每次都在sprintf()函数这边出问题,到这地方程序就死掉了,这一句基本形式如下面这样:
sprintf(str,'%0.2f',val);
什么原因呢?我以前用KEIL V2 给stc单片机开发过商业软件,这地方还没出现过问题,难道V4 的arm版本就不行了,网上搜索了下,遇到问题的人不少,有用的答案很少。
通过长时间的摸索,好像是这个版本里不能用sprintf()函数将浮点型数值格式化为字符串。经过我多天的调试,并不是说这个函数不能运行,是偶尔能运行的。但是如果用这个函数将一个整形数格式化为字符串是没问题的,所以不妨把程序稍微改改就可以用了,比如讲float a=12.356;格式化成char str='12.356',改成下面这样就行了
sprintf(str,''%d.%03d',(unsigned int)a,(unsigned int)(a-(unsigned int )a)*1000)
这样问题就解决了。
相关文章
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- STM32的项目创建——基于Keil MDK环境
- Keil5安装+STM32CubeMX安装+VSCode辅助开发教程
- STM32 KEIL if满足条件却无法进入
- LVGL8.3学习记录(四)-KEIL&Stm32 LVGL显示移植配置
- 新手入门proteus与keil5软件仿真stm32的手把手超简单教程
- 使用Makefile在Windows环境下编译STM32F103C8T6标准库工程,脱离Keil的指南
- Keil环境下配置GCC编译器以开发STM32 C语言项目:探讨C语言特性及第23条指南
- STM32 HAL开发环境搭建指南:Keil MDK-ARM、STM32F1xx DFP与ST-Link工具链配置详解,结合STM32CubeMX使
- STM32与Keil uVision5工程中文件后缀的详细作用解析
- 六大全新产品系列推出,MCX A微控制器家族迎来创新
- 意法半导体全新STM32C5系列,重新定义入门级微控制器性能与价值,赋能万千智能设备
- 模组复用与整机重测在SRRC、CCC、CTA/NAL认证中的实践操作指南
- 有源晶振与无源晶振的六大区别详解
- 英飞凌持续巩固全球微控制器市场领导地位
- 使用 Keil Studio for Visual Studio Code开发 STM32 设备
- 蓝牙信道探测技术原理与开发套件实践
- Microchip 推出生产就绪型全栈边缘 AI 解决方案,赋能MCU和MPU实现 智能实时决策
- LoRa、LoRaWAN、NB-IoT与4G DTU技术对比及工业无线方案选型分析
- 从控制到系统:TI利用边缘AI重塑嵌入式MCU的边界
热门新闻




