Gradually migrate to FreeRTOS
This commit is contained in:
@@ -7,8 +7,8 @@
|
||||
#include "uart_rx.pio.h"
|
||||
|
||||
#define HC_12_PIO pio1
|
||||
#define HC_12_PIO_TX_PIN 16 // 接 HC-12 RX
|
||||
#define HC_12_PIO_RX_PIN 15 // 接 HC-12 TX
|
||||
#define HC_12_PIO_TX_PIN 16 // 接 HC-12 RX
|
||||
#define HC_12_PIO_RX_PIN 15 // 接 HC-12 TX
|
||||
#define HC_12_PIO_SM_TX 0
|
||||
#define HC_12_PIO_SM_RX 1
|
||||
#define HC_12_PIO_SERIAL_BAUD 9600
|
||||
|
@@ -297,8 +297,6 @@ int main()
|
||||
}
|
||||
watchdog_update(); // 喂狗
|
||||
|
||||
|
||||
|
||||
// CH4
|
||||
FIFO_ = multicore_fifo_pop_blocking();
|
||||
if (FIFO_ == 1) {
|
||||
@@ -325,22 +323,22 @@ int main()
|
||||
printf("Temperature: %.3f°C\n", TEMPERATURE);
|
||||
}
|
||||
//_433_MHZ(addDigit(TEMPERATURE, SIGN_DS18B20));
|
||||
|
||||
if (TEMPERATURE != 85) {
|
||||
char TEMPERATURE_TEMP[BUFER] = { 0 };
|
||||
sprintf(TEMPERATURE_TEMP, "Temperature: %.3f°C\n", TEMPERATURE);
|
||||
_HC_12(TEMPERATURE_TEMP);
|
||||
|
||||
TEMPERATURE = -1;
|
||||
}
|
||||
if (TEMPERATURE != 85) {
|
||||
char TEMPERATURE_TEMP[BUFER] = { 0 };
|
||||
sprintf(TEMPERATURE_TEMP, "Temperature: %.3f°C\n", TEMPERATURE);
|
||||
_HC_12(TEMPERATURE_TEMP);
|
||||
|
||||
TEMPERATURE = -1;
|
||||
}
|
||||
|
||||
}
|
||||
watchdog_update(); // 喂狗
|
||||
|
||||
// ZC13 CH4 传感器
|
||||
char CH4_DATA[BUFER] = { 0 };
|
||||
sprintf(CH4_DATA, "CH4 Concentration: %d\n", ZC13("ZC05"));
|
||||
_HC_12(CH4_DATA);
|
||||
|
||||
// ZC13 CH4 传感器
|
||||
char CH4_DATA[BUFER] = { 0 };
|
||||
sprintf(CH4_DATA, "CH4 Concentration: %d\n", ZC13("ZC05"));
|
||||
_HC_12(CH4_DATA);
|
||||
watchdog_update(); // 喂狗
|
||||
|
||||
// ME2_CO CO
|
||||
|
@@ -43,7 +43,7 @@
|
||||
#define UART1_RX_PIN 4 // MH-Z14B R
|
||||
|
||||
#define UART0 uart0
|
||||
#define UART0_TX_PIN 1 //
|
||||
#define UART0_RX_PIN 0 //
|
||||
#define UART0_TX_PIN 1 //
|
||||
#define UART0_RX_PIN 0 //
|
||||
|
||||
#endif
|
||||
|
@@ -12,26 +12,28 @@ int ZC13_INIT()
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZC13_PIO_UART_TX_DATA(PIO pio, uint sm, uint8_t *DATA, int DATA_LEN) {
|
||||
|
||||
for (int i = 0; i < DATA_LEN; i++) {
|
||||
int ZC13_PIO_UART_TX_DATA(PIO pio, uint sm, uint8_t * DATA, int DATA_LEN)
|
||||
{
|
||||
|
||||
for (int i = 0; i < DATA_LEN; i++) {
|
||||
uart_tx_program_putc(pio, sm, DATA[i]);
|
||||
sleep_ms(3);
|
||||
}
|
||||
|
||||
return 0;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
int ZC13_PIO_UART_RX_DATA(PIO pio, uint sm, uint8_t *DATA, int DATA_LEN) {
|
||||
int ZC13_PIO_UART_RX_DATA(PIO pio, uint sm, uint8_t * DATA, int DATA_LEN)
|
||||
{
|
||||
char c = '\0';
|
||||
int received_count = 0;
|
||||
int timeout_ms = 100; // 设置较长的超时时间
|
||||
int timeout_ms = 100; // 设置较长的超时时间
|
||||
|
||||
while (received_count < DATA_LEN && timeout_ms > 0) {
|
||||
if (uart_rx_program_available(pio, sm)) {
|
||||
c = uart_rx_program_getc(pio, sm);
|
||||
DATA[received_count++] = c;
|
||||
printf("0x%X ", c);
|
||||
printf("0x%X ", c);
|
||||
if (c == '\n') {
|
||||
// 接收到换行符,停止接收数据
|
||||
break;
|
||||
@@ -58,15 +60,14 @@ int ZC13(const char *model)
|
||||
|
||||
// 发送指令
|
||||
uint8_t CH4_CMD[9] = { 0xFF, 0x01, 0x86, 0x00, 0x00, 0x00, 0x00, 0x00, 0x79 };
|
||||
ZC13_PIO_UART_TX_DATA(ZC13_PIO, ZC13_PIO_SM_TX, CH4_CMD, sizeof(CH4_CMD));
|
||||
ZC13_PIO_UART_TX_DATA(ZC13_PIO, ZC13_PIO_SM_TX, CH4_CMD, sizeof(CH4_CMD));
|
||||
sleep_ms(200);
|
||||
|
||||
// 接收指令
|
||||
CH4_DATA_LEN = ZC13_PIO_UART_RX_DATA(ZC13_PIO, ZC13_PIO_SM_RX, CH4_DATA, 9);
|
||||
|
||||
// 接收指令
|
||||
CH4_DATA_LEN = ZC13_PIO_UART_RX_DATA(ZC13_PIO, ZC13_PIO_SM_RX, CH4_DATA, 9);
|
||||
|
||||
printf("\n");
|
||||
printf("%d\n", CH4_DATA_LEN);
|
||||
printf("%d\n", CH4_DATA_LEN);
|
||||
|
||||
uint8_t highByte = CH4_DATA[2]; // 假设这是气体浓度高位字节
|
||||
uint8_t lowByte = CH4_DATA[3]; // 假设这是气体浓度高位字节
|
||||
@@ -77,26 +78,26 @@ int ZC13(const char *model)
|
||||
printf("CH4 sensor malfunction!\n");
|
||||
} else {
|
||||
if (CH4_DATA[1] == 0X86) {
|
||||
if ( 0 == strcasecmp(model, "ZC05")) {
|
||||
// 计算气体浓度值
|
||||
uint16_t gasConcentration = (highByte & 0x3F) * 256 + lowByte;
|
||||
// 输出气体浓度值
|
||||
printf("CH4 Concentration: %uppm\n", gasConcentration);
|
||||
|
||||
return gasConcentration;
|
||||
}
|
||||
|
||||
if ( 0 == strcasecmp(model, "ZC13")) {
|
||||
// 计算气体浓度值
|
||||
uint16_t gasConcentration = (highByte & 0x1F) * 256 + lowByte;
|
||||
// 输出气体浓度值
|
||||
printf("CH4 Concentration: %uppm\n", gasConcentration);
|
||||
|
||||
return gasConcentration;
|
||||
}
|
||||
if (0 == strcasecmp(model, "ZC05")) {
|
||||
// 计算气体浓度值
|
||||
uint16_t gasConcentration = (highByte & 0x3F) * 256 + lowByte;
|
||||
// 输出气体浓度值
|
||||
printf("CH4 Concentration: %uppm\n", gasConcentration);
|
||||
|
||||
return gasConcentration;
|
||||
}
|
||||
|
||||
if (0 == strcasecmp(model, "ZC13")) {
|
||||
// 计算气体浓度值
|
||||
uint16_t gasConcentration = (highByte & 0x1F) * 256 + lowByte;
|
||||
// 输出气体浓度值
|
||||
printf("CH4 Concentration: %uppm\n", gasConcentration);
|
||||
|
||||
return gasConcentration;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
return -1;
|
||||
}
|
||||
|
||||
@@ -168,4 +169,4 @@ int ZC13(const char *model)
|
||||
|
||||
return -1;
|
||||
}
|
||||
*/
|
||||
*/
|
||||
|
@@ -9,8 +9,8 @@
|
||||
#include "uart_rx.pio.h"
|
||||
|
||||
#define ZC13_PIO pio0
|
||||
#define ZC13_PIO_TX_PIN 19 // 接ZC13 4 TX PIN
|
||||
#define ZC13_PIO_RX_PIN 20 // 接ZC13 5 RX PIN
|
||||
#define ZC13_PIO_TX_PIN 19 // 接ZC13 4 TX PIN
|
||||
#define ZC13_PIO_RX_PIN 20 // 接ZC13 5 RX PIN
|
||||
#define ZC13_PIO_SM_TX 0
|
||||
#define ZC13_PIO_SM_RX 1
|
||||
#define ZC13_PIO_SERIAL_BAUD 9600
|
||||
|
Reference in New Issue
Block a user