Keil开发与STM32Cube开发的差异点总结(未完待续)

1.使用keil开发可以用中文打印、中文编码,中文路径编译,STM32CubeIDE不行。

  • 第一部分是字符编码,用STM32CubeIDE打开会发现注释和打印是乱码,有些输出到外部的中文也是会出现乱码。这个可以解决,STM32CubeIDE内置的选项是UTF8,并没有中文,可以手工输入GBK(非下拉选择),源码文件使用第三方工具改为GB2312的中文字符编码即可。
  • 第二部分的中文路径问题目前没有办法,项目代码只能独立到无中文路径下面编译调试,否则编译链接,单步调试都会有问题。

2.STM32CubeIDE打印不了llu、lld的格式化输出,需要自己实现转字符串,然后拼接到需要打印的字符串。因为STM32CubeIDE用的是 libc_nano.a(newlib-nano 精简 printf)。它不支持 %ll 长度修饰符,遇到 %llu 就把解析不出来的 "l" 原样吐出、再跟上 "u"------所以打出来永远是 "lu"。屏幕字体里小写 l 看着像 1,就成了"1u"。Keil 用的 microlib 支持长长整型, Keil→CubeIDE 迁移后会冒出这个问题。

长长整型转字符串函数参考:

char g_u64txt24;

void __func_u64_to_dec(char *out, uint64_t val){

char tmp24;

uint8_t i = 0, j = 0;

if(val == 0){ out0 = '0'; out1 = 0x00; return; }

while(val > 0){

tmpi++ = (char)('0' + (uint8_t)(val % 10));

val /= 10;

}

while(i > 0){ outj++ = tmp--i; }

outj = 0x00;

}

3.使用的STM32CubeIDE编译的bin包比Keil编译的大,keil开了优化,STM32CubeIDE没有开优化。

相关推荐
G***技8 小时前
杰和科技亮相中国工博会:嵌入式边缘AI驱动自动化场景落地
嵌入式硬件·边缘ai·工博会
QYR-分析10 小时前
汽车碳刷市场深度解析:存量维保支撑需求,电动化重塑行业格局
单片机·嵌入式硬件·汽车
沐欣工作室_lvyiyi10 小时前
基于单片机的升降式立体车库系统设计(论文+源码)
单片机·嵌入式硬件·毕业设计·rfid·单片机毕业设计·数据库设计·物联网毕业设计
碧海银沙音频科技研究院11 小时前
基于炬芯ATS3089X的BLE opus音频传输系统设计
stm32·单片机·嵌入式硬件
Yiran_G12 小时前
智能家居自动化为什么会失效?从一次开灯失败看无线通信链路
嵌入式硬件·物联网·智能家居
编程圈子12 小时前
I.MX6U 裸机开发 25. PWM 与 LCD 背光
单片机·嵌入式硬件
创界工坊工作室13 小时前
35-基于AT89C51单片机的罐头生产线传送系统设计
stm32·单片机·嵌入式硬件·51单片机·proteus·生产线
qq_4017004113 小时前
MCU串口接收不定长数据的三种方案,哪种最稳?
stm32·单片机·嵌入式硬件
inrichtt14 小时前
第七课时:STM32时钟系统揭秘:从零理解时钟树
c语言·数据结构·stm32·单片机·嵌入式硬件
硅基手札14 小时前
【Linux 内核专栏 17】进程间通信 IPC(上)— 管道·信号·System V IPC·mmap·文件锁
linux·运维·服务器·stm32·单片机·mcu