主控:STM32F103ZET6
传感器:MH-Z14A
编译环境:keil5
通信方式:串口2通信
输出信号方式:
默认的二氧化碳量程为0~5000ppm。
串口输出需将波特率设置为9600,数据位为8,停止位为1,无奇偶校验。
没有标准的二氧化碳浓度环境校零,可以选择连续运行24小时自动校准的方式进行校准。
检验校验和
void CheckSum() { char i,checksum=0; for( i = 1; i < 8; i++) { checksum += USART_RX_BUF_2[i]; } checksum = 0xff - checksum; checksum += 1; if(checksum == USART_RX_BUF_2[8]) { CO2Data = USART_RX_BUF_2[2] * 256 + USART_RX_BUF_2[3]; printf("CO2=%d ppm \n",CO2Data); } else printf("CO2 error"); }串口接收中断程序
void USART2_IRQHandler(void) { if(USART_GetITStatus(USART2, USART_IT_RXNE) != RESET) { USART_ClearFlag(USART2,USART_FLAG_RXNE); USART_RX_BUF_2[USART2Count++] = USART2->DR; } if(USART2Count>=9)//传输完一组数据 { USART2Count=0; }