当然是c++和c#,这两种语言在windows平台下是最广泛的存在。
现在的硬件设备,最常见的是串口设备,usb设备和以太网设备。这些标准接口,在windows下都有底层驱动,开发起来难度并不大。
串口设备,包括232串口和485串口,多半命令格式是一发一收的互动模式。c++工程师建议使用台湾moxa的串口封装模块(dll),可以极大地简化底层代码工作量。c#工程师简单多了,直接操作串口就可以。
usb设备和以太网设备也是如此。可以去找一下标准例程,上手还是很快的。
但是普遍存在的一个问题是:硬件工程师写一个好的上位机软件却很难。经常局限于硬件本身,却忽略软件工程的全局,做出来的东西不适合用户使用。所以我个人建议,硬件工程师可以做好上位机的测试程序,其他工作,还是交给软件工程师来做吧,毕竟你的精力有限,想一个人通吃所有,不太现实!