头像-219588

Angel_YY

  • 3石家庄市
  • 嵌入式
  • 汽车电子

个人成就

获得 1451 次赞

帮助过1156人

C语言中为什么字符串通常都要多一位?

C语言中的字符串多出的一位是'\0',用来表示字符串结束了,很多字符串处理函数都是根据字符串结尾的'\0'来判断字符串结束的,当然如果定义的字符串放在数组中,而且自己明确的指导字符串中字符的个数,不使用'\0'结束也是可以的,但是这样就不能使用相关的字符串操作函数了。所以由此可以看出,字符串中间是不能有'\0'的。

嵌入式系统开发中,虚拟机软件如VMware和Qemu有区别么?啥区别

两种虚拟软件有相同的地方,也有不同额地方,VMWare目前只能模拟X86和X64架构,也就是是或不能模拟其他指令集,所以通常用来运行Ubuntu系统,安装开发环境来进行交叉编译开发ARM软件。Qemu则能够在PC系统中模拟其他指令集的处理器,比如直接模拟Arm架构的处理器,当然也可以模拟X86和X64架构。所以通常是在PC平台安装VMware虚拟机软件,运行Ubuntu,编写和编译Arm架构软件,然后在目标开发板运行。而Qemu可以认为是在没有Arm开发板的情况下来模拟一个Arm开发板,运行Ubuntu中开发的软件进行验证。Qemu是可以直接在Windows中安装的,官方提供命令行工具,不习惯命令行可以使用第三方的图形界面工具。

虚拟机可以安装双系统么

虚拟机可以安装双系统,但是很少会有这个需求,因为直接开多个虚拟机即可,双系统意义不大。

铁锂电池充电如何改满电电压

这种情况一般很难通过修改电阻的方式改变充电输出电压,不过可以自己做一个简单的电压监测装置,监控电池电压,当达到83.85V时断开充电电路,再简单点儿当电压达到83.85V时进行报警,此时认为断开充电机即可。

keil中,if语句必须加上else吗?

if语句在C语言中else是可选项,不用也是可以的。Keil中使用C语言同样可以只使用if,不使用else,只要业务逻辑能够准确表达即可。

ubuntu2004上编译不通过,18.04上却可以

不同版本的Ubuntu使用了不同的库,如果使用的库没办法向下兼容,就可能出现问题。ubuntu2004版本太新了,很多功能并没有在这个系统下进行过完成的适配,所以可能遇到兼容问题,开发软件并不是Ubuntu版本月新越好,现在还有很多程序都在使用16.04,能用就行。

STM32单片机入门,先学库好还是先学寄存器好

学习寄存器的话周期太长,而且开发效率比较低。直接学习库即可,开发效率高很多,如果遇到不能解决的问题,再看看如何使用寄存器解决。

linux下的界面开发流程是怎样的?

如果是x86平台或者x64平台。可以在安装linux后进行本地开发,一般使用QTCreater进行界面设置,然后业务逻辑编码,编译,测试即可。如果是Arm平台,一般使用交叉编译,在x64的linux上同样使用QTCreater进行界面设计。编译后部署到Armlinux环境下测试