前段时间在使用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 软件调试延时时间的详细步骤
下一篇:keil仿真时查看变量出现 not in scope 问题的解决
- 热门资源推荐
- 热门放大器推荐
- 用于反激式转换器的 NCP1248 固定频率电流模式控制器的典型应用
- ADM7170 6.5 V、500 mA、超低噪声、高 PSRR、快速瞬态响应 CMOS LDO 的典型应用
- LT8303ES5 30 至 80 Vin、12Vout 隔离反激式转换器的典型应用电路
- TS4621ML高性能G类立体声耳机放大器典型应用
- 使用 Embedded Planet 的 5CEFA9U27 的参考设计
- 将 AD9281 双通道、8 位分辨率 CMOS ADC 用于变压器耦合输入的典型应用
- EVAL-ADICUP3029,基于 Arduino 的物联网应用无线开发平台,基于 ADuCM3029 和超低功耗 ARM Cortex-M3 处理器
- MAXREFDES116#:隔离的24V至5V 40w电源
- LTC2862AIDD-2 PROFIBUS 兼容线路接口的典型应用
- LTC2424、4/8 通道、20 位 Delta-Sigma ADC 的典型应用
- 2026 IPC电子装联大师赛在沪开幕,标准与人才共筑卓越产业
- 半年翻三倍!三星2nm良率涨至60%以上:紧追台积电
- 创新竞赛中汽车制造商必须集成无线测试技术
- 倪光南:半导体行业不再是先进制程包打天下的局面
- 意法半导体与英伟达合作加快物理AI全面普及和市场增长
- 是德科技扩展1.6T互连验证技术,新增无源铜缆和低功耗光模块验证支持
- Microchip推出车规级系统封装(SiP)混合型单片机SAM9X75
- Arm AGI CPU 更多细节:台积电 3nm 制程、Neoverse V3 微架构
- 全国首条 8 英寸硅光芯片量产线在苏州开工建设,预计 2027 年初投产
- 贸泽电子荣获海关AEO高级认证 ——迈向国际贸易合规与供应链安全重要里程碑

现代雷达系统的信号设计
LF157H








京公网安备 11010802033920号