二氧化碳傳感器MH-Z19/STM32串口測試代碼
串口調試.jpg (24.59 KB, 下載次數: 108)
下載附件
串口調試
2019-4-11 16:20 上傳
簡介.jpg (62.51 KB, 下載次數: 87)
下載附件
簡介
2019-4-11 16:20 上傳
單片機源程序如下:
- #include "sys.h"
- #include "delay.h"
- #include "usart.h"
- #include "led.h"
- int CO2Data;
- u8 USART1Count;
- //定義串口發送命令
- uint16_t CO2TxBuffer[9]={0xFF,0x01,0x86,0x00,0x00,0x00,0x00,0x00,0x79};
- uint16_t USART_RX_BUF_2[]={0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};
- /*******************************************************************************
- * 函 數 名 : CO2_Tx
- * 函數功能 : 串口發送
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void CO2_Tx()
- {
- int i;
- for(i = 0; i < 9; i++)
- {
- USART_ClearFlag(USART1, USART_FLAG_TC);
- USART_SendData(USART1, CO2TxBuffer[i]);
- while(USART_GetFlagStatus(USART1, USART_FLAG_TC)==RESET);
- }
- }
- /*******************************************************************************
- * 函 數 名 : CheckSum
- * 函數功能 : 校驗和函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- 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];
- if(CO2Data > 9999)
- CO2Data=0;
- printf("CO2濃度= %d ppm \n", CO2Data);
- }
- /*******************************************************************************
- * 函 數 名 : main
- * 函數功能 : 主函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- int main(void)
- {
- delay_init(); //延時函數初始化
- NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);//設置中斷優先級分組為組2:2位搶占優先級,2位響應優先級
- LED_Init();
- USART1_Init(9600);//串口1初始化,與傳感器的通信波特率固定位9600
- while(1)
- {
- CO2_Tx();
- delay_ms(1000);// 間隔一毫秒進行一次命令發送
- CheckSum();
- }
- }
- /*******************************************************************************
- * 函 數 名 : USART1_IRQHandler
- * 函數功能 : 串口通信中斷函數
- * 輸 入 : 無
- * 輸 出 : 無
- *******************************************************************************/
- void USART1_IRQHandler(void)
- {
- if(USART_GetITStatus(USART1, USART_IT_RXNE) != RESET)
- {
- USART_ClearFlag(USART1 , USART_FLAG_RXNE);
- USART_RX_BUF_2[USART1Count++] = USART1->DR;
- }
- if(USART1Count>=9)
- {
- USART1Count=0;
- }
- }
復制代碼
所有資料51hei提供下載:
二氧化碳傳感器MH-Z19代碼.7z
(179.83 KB, 下載次數: 181)
2019-4-11 17:20 上傳
點擊文件名下載附件
STM32代碼 下載積分: 黑幣 -5
MH-Z19紅外二氧化碳傳感器.pdf
(375.11 KB, 下載次數: 95)
2019-4-11 16:21 上傳
點擊文件名下載附件
傳感器手冊 下載積分: 黑幣 -5
|