七月计划

本月是入职参加工作的第一个月,计划为在公司中了解公司产品代码编写以及在工作中的职责,另外再读两本专业书籍。

公司产品

公司产品主要是各类的环境监测设备,例如温湿度监测模块,直流电采集模块,烟雾监测模块,水浸监测模块这种单独模块类型,也有集成类型的监测模块,目前没有接触。

温湿度监测模块

主控芯片

STM32f103c8t6

主要外设

W5500以太网接口

板载到PCB板上通过网线与上位机进行连接,外设与主控芯片的通信方式为SPI通信,首先在程序中初始化主控芯片的SPI引脚,随后通过SPI通信方式建立socket的UDP连接,向对应IP和端口号接收和发送数据。

0.96寸OLED显示屏

IIC通信方式,通过主控芯片的两个GPIO引脚作为模拟信号来模拟IIC的SDA和SCL线,以此来向显示屏发送命令和数据,显示不同的内容。

SHT30温湿度传感器

IIC通信方式,同样是两个GPIO口来模拟IIC信号来进行通信读取传感器发出的温湿度数据,可承受温度范围为-50℃~130℃。

主要模块是这些,在通信方面主要使用基于RS485电气特性的UART串口通信和W5500的网口通信,需要根据公司的通信协议在模块的代码中实现两种通信方式,分别使用网口和串口对模块进行通信。

Boot loader升级

在软件代码编写完成后升级软件主要通过boot loader的方式进行升级,软件分为boot端和App端两部分,boot端仅保留系统升级的各项通信协议部分,其余协议不做保留。具体流程为模块上电首先进入boot状态,检查内部flash是否有升级标志,如果有升级标志进行软件的升级,如果没有则调用跳转函数跳转到App端代码的flash地址运行app端的代码。需要注意的是在进入boot后如果通信协议有延时的情况下需要在boot中等待是否有通信,如果有通信则开始进行软件升级,否则进入app端。

app端升级软件的协议为发送升级协议,接收到升级协议后重启模块进入boot模式,上位机监测模块是否处于boot模式,如果处于boot模式则开始发送升级软件的数据包,将要升级的软件刷写到模块的flash中,刷写完成后将升级标志位清空后跳转到app程序并运行。

烟雾监测模块

主控芯片

STM32f103c8t6

主要模块

MQ2烟雾传感器

烟雾模块主要使用了AO引脚输出模拟电压,烟雾浓度越大输出电压越高。此外烟雾传感器还有DO引脚,DO引脚的灵敏度通过传感器上的灵敏度进行调节,需要人为手动调节,所以没有使用,使用了AO引脚进行程序的烟雾浓度阈值设定。

目前在公司只编写了这两个模块的代码并进行了测试。

专业书籍

本月读了两本程序员的入门书籍作为职业生涯的开始,希望可以对后续的道路起到指引作用。

在这里只列出书名,读书笔记会在后续单独写出博客。

《程序员的自我修养》

《代码整洁之道》