PM2_5.c 2.2 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889
  1. #include "PM2_5.h"
  2. #include "iot_errno.h"
  3. #include "iot_gpio.h"
  4. #include "iot_gpio_ex.h"
  5. #include "iot_uart.h"
  6. #include "stdio.h"
  7. #define RESET_GPIO 7
  8. #define LED_SAFE_GPIO 8
  9. #define LED_WARN_GPIO 14
  10. #define SET_GPIO 13
  11. #define WIFI_IOT_UART_IDX_1 1
  12. uint8_t RxBuffer[3];
  13. #define RELAY_GPIO 14
  14. void BoardInit(void)
  15. {
  16. IoTGpioInit(RELAY_GPIO);
  17. IoTGpioSetFunc(RELAY_GPIO, IOT_GPIO_FUNC_GPIO_14_GPIO);
  18. IoTGpioSetDir(RELAY_GPIO, IOT_GPIO_DIR_OUT); //设置为输出模式
  19. uint32_t ret;
  20. IotUartAttribute uart_attr = {
  21. // baud_rate: 9600
  22. .baudRate = 9600,
  23. // data_bits: 8bits
  24. .dataBits = 8,
  25. .stopBits = 1,
  26. .parity = 0,
  27. };
  28. // Initialize uart driver
  29. ret = IoTUartInit(WIFI_IOT_UART_IDX_1, &uart_attr);
  30. if (ret != IOT_SUCCESS) {
  31. printf("Failed to init uart! Err code = %d\n", ret);
  32. return;
  33. }
  34. }
  35. static unsigned char read_date[32];
  36. /***************************************************************
  37. * 函数名称: PM2DReadData
  38. * 说 明: 获取GPS经纬度信息
  39. * 参 数: 无
  40. * 返 回 值: 无
  41. ***************************************************************/
  42. void PM2DReadData(PM2D5Data* ReadData)
  43. {
  44. //通过串口1接收数据
  45. IoTUartRead(WIFI_IOT_UART_IDX_1, read_date, 200);
  46. for(int i = 0; i<200; i++)
  47. {
  48. printf("%d------%x\r\n",i,read_date[i]);
  49. }
  50. // if(read_date[0]== 0x42 && read_date[1]== 0x4d)
  51. // {
  52. // ReadData->pm1_0=read_date[2]<<8|read_date[3];
  53. // ReadData->pm2_5=read_date[4]<<8|read_date[5];
  54. // ReadData->pm10=read_date[6]<<8|read_date[7];
  55. // }
  56. }
  57. /***************************************************************
  58. * 函数名称: RelayStatusSet
  59. * 说 明: 开关继电器
  60. * 参 数: status,ENUM枚举的数据
  61. * OFF,光灯
  62. * ON,开灯
  63. * 返 回 值: 无
  64. ***************************************************************/
  65. void RelayStatusSet(SwitchStatus status)
  66. {
  67. if (status == ON) {
  68. IoTGpioSetOutputVal(RELAY_GPIO, 1); //设置输出高电平点亮LED灯
  69. }
  70. if (status == OFF) {
  71. IoTGpioSetOutputVal(RELAY_GPIO, 0); //设置输出低电平点亮LED灯
  72. }
  73. }