黄丹
c++工程师
11年经验
2024-06-24
个人介绍:1、熟悉ARM汇编、C、C++、QT5、MFC;
2、熟悉ARM处理器/STM32微处理器以及常见外围设备的接口技术,如串口、LCD、IIC、IIS等;
3、熟悉编写LINUX下的字符设备驱动,了解块设备驱动及网络设备驱动;熟悉LINUX/WINCE下的同步、互斥、阻塞、睡眠等机制。
4、熟悉Linux平台搭建,熟练移植bootloader,Linux内核及制作Linux文件系统等;
5、熟悉Linux/WINCE多进程、进程间通信、多线程、网络编程等,具有良好的编程风格;
6、熟练阅读英文技术手册;
7、熟悉windows编程。
项目经验:一、
项目名称:对讲机终端软件应用层功能扩展(校园演练主机)
项目周期:1个月
项目简介:该校园演练主机用于学校为预防突发情况(包括地震、火灾、暴力、空袭)而为学生提供的模拟演习而用的一个项目,该演练主机配合PC上的管理软件以及话筒设备使用,它能实现触发呼叫按钮与保安室的话筒通话以及视频,以及触发另外四个按钮实现播放不同的报警声音和LCD显示屏不同文字显示。该终端主机和话筒是由PC上的管理软件管理,整个对讲语音通话或者视频通话走网络通信。
担任职位:嵌入式软件开发工程师
项目职责:一开始该演练主机的功能只有语音和视频通话功能,为满足项目需要需对该主机进行功能改进。而我在该项目中负责的就是这部分功能的改进工作。主要的改进点是触发那四个报警按钮实现不同的报警声音播报和文字显示(原先这四个按钮是四个IO口预留不起作用)原先其他功能的声音播放例如振铃是由终端设备的喇叭播报,要改为由外接音箱播报、
原先的外设串口不起作用要改为该外设串口连接LCD屏幕要能实现文字滚屏显示。实现这些功能点我用到的关键技术有:
1、ARM GPIO控制。
2、485串口通信:外设串口连接LCD屏幕实现文字滚屏显示用到了485串口通信协议
3、多线程:每个IO口触发的功能分别开一个线程操作执行。
二、
项目名称:掌上电脑
项目周期:1个月
项目简介:这是一个公司给的一个练手项目,要求实现的功能是在ARM开发板上做一个类似掌上电脑的功能,功能包含开机启动界面、工具箱、MP3播放器、日历、电话谱等等类型掌上电脑的功能,ARM 板上的移植操作系统是LINUX。
担任职位:嵌入式软件开发工程师
项目职责:负责实现整个掌上电脑的功能,工作量包括系统的移植、界面的设计、以及各个功能的实现。我在这个项目中用到的关键技术有:
1、Linux开发环境搭建,BootLoader的配置与移植、嵌入式Linux内核及文件系统的构建
2、Linux字符设备驱动开发
3、QT/E移植
4、Mpalyer移植,Mpalyer slave命令的使用,系统音源的控制(调节音量等)。
5、GUI的设计:对话框、主窗口、布局、事件处理、QT多进程等
三、
项目名称:自动化校正油烟浓度、气压、温湿度测试软件
项目周期:1个月
项目简介:城市居家油烟排放受环保部门监控管理,因此城市每家每户都需装一个油烟探头,该油烟探头能采集厨房排放的油烟浓度、气压以及温湿度,探头采集到的这些油烟浓度、气压以及温室度实时上传到环保部门的管理中心,以便环保部门对有违规排放的居民进行监督管理。当时公司受客户委托就是专门批量生产研发销售这类探头。这种探头里头有一块单片机电路板,它包含一个气压采集传感器和温湿度传感器,油烟浓度、气压、温湿度的计算受传感器材质影响,这个影响因素称之为修正系数,从市面上采购的传感器不管是气压温湿度传感器,他们的修正系数都是不一样的。因此每个探头投入市场使用都要把这些修正系数调好,公司为提高生产效率要求做一个自动化校正软件来对每个探头的修正系数进行修改以便单片机电路板实时采集出来的浓度气压温湿度也是标准的,公司里头有一个标准的探头,该探头采集的油烟浓度、气压、温湿度是标准的,拿该探头作参照调其他探头,设计开发该自动化校正软件。
担任职位:嵌入式软件开发工程师
项目职责:负责开发该自动化校正软件,该软件运行在PC端,它通过串口与每个探头的单片机通信,界面上设有40个串口号选择供与40个探头同时通信,具体的工作过程是40个探头和一个标准探头同时放入油烟浓度、气压、温湿度测试环境内,分别在一个浓度、气压、温湿度测试范围内采集40个探头的各个类型数据与标准探头采集的各个类型数据进行比较,通过自动计算各个类型校正系数并分别写入40个探头单片机内部,使得出厂的每个探头在实际的用户那里在同一个环境内采集的浓度、气压、温湿度都是一样。在该项目中用到的关键技术有:
1、c++ 485串口编程:自动化校正系数测试软件通过485串口编程与单片机内部读写数据;
2、多线程:每一个参数量查询设置放入单个线程实现,保证各个参数量的查询设置之间互不影响,界面不卡。
3、485串口通信协议:该软件串口协议自定与单片内部保持一致,串口协议包含首部字段、数据段长度字段、数据内容字段、校验字段、尾部字段,保证数据传输的完整性。
四、
项目名称:智能贴标机控制管理软件
项目周期:2个月
项目简介:石材加工厂对大理石进行切板,需对给每一个切出来的小板贴标签,采用传统人工贴,效率低,误差大,因此给石材加工厂引入一个贴标机装置与五轴数控系统,两者配合使用自动对大理石板贴标减少人工操作和误差。该贴标机装置配合五轴数控系统的自动贴标动作由PC 端的控制软件实现。该贴标装置包含的硬件设备有斑马ZT230打印机、PLC控制器、跟PLC相连的等外围设备以及装打印机的机箱壳等组成。整个智能自动贴标功能包括的软件系统有HMI、智能贴标机控制管理软件、相机软件等组成,其中HMI、相机软件大部分有其他方完成,我主要负责智能贴标机控制管理软件的实现。该套软件主要实现跟HMI的网络通信以及与PLC控制器的串口以及网络通信,还包括控制打印机实现打印操作的实现等等。
担任职位:C++软件工程师
项目职责:负责智能贴标机控制管理软件的设计和各个功能的实现。主要实现的功能有:点击界面相应的按钮实现对应气缸的各种动作;连接服务器实现与HMI(人机交互界面软件)的网络通信,HMI发送相应的的命令通知贴标机控制软件何时执行打印、取标、贴标等一系列动作,两者的数据均封装为JASON 类型的字符串交互;点击定点贴标实现机头不动的时候在特定位置自动贴标等等。该软件实现用到的关键技术有:
1、modbus通信协议的串口以及网络编程:上位机控制PLC控制器动作通过串口以及网络连接因此用到MODBUS的串口以及网络编程;
2、TCP/IP协议网络编程:贴标机控制软件与HMI交互信令用到TCP/IP网络编程;
3、c++定时器的使用:
4、多线程编程技术:定点自动贴标、以及控制打印机打印等一些功能放在单独的线程执行以免界面出现卡顿等异常现象;
5、c++读写配置文件(方便数据的保存和读取)、JSON字符串的封装和解析;
6、c++控制工业打印机打印:调用Windows API实现控制工业打印机的打印
技 能:
C++