paomadeng.c 3.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129
  1. #include <stdio.h>
  2. #include <unistd.h>
  3. #include <string.h>
  4. #include "ohos_init.h"
  5. #include "cmsis_os2.h"
  6. #include "iot_gpio.h"
  7. #include "iot_gpio_ex.h"
  8. #define OUT_GPIO2 2
  9. #define OUT_GPIO7 7
  10. #define OUT_GPIO8 8
  11. #define OUT_GPIO9 9
  12. #define OUT_GPIO10 10
  13. #define OUT_GPIO11 11
  14. #define OUT_GPIO12 12
  15. #define OUT_GPIO13 13
  16. int BH1750_InitMainLed(void)
  17. {
  18. IoTGpioInit(OUT_GPIO7);
  19. IoTGpioSetFunc(OUT_GPIO7, IOT_GPIO_FUNC_GPIO_7_GPIO);
  20. IoTGpioSetDir(OUT_GPIO7, IOT_GPIO_DIR_OUT);
  21. IoTGpioInit(OUT_GPIO8);
  22. IoTGpioSetFunc(OUT_GPIO8, IOT_GPIO_FUNC_GPIO_8_GPIO);
  23. IoTGpioSetDir(OUT_GPIO8, IOT_GPIO_DIR_OUT);
  24. IoTGpioInit(OUT_GPIO9);
  25. IoTGpioSetFunc(OUT_GPIO9, IOT_GPIO_FUNC_GPIO_9_GPIO);
  26. IoTGpioSetDir(OUT_GPIO9, IOT_GPIO_DIR_OUT);
  27. IoTGpioInit(OUT_GPIO10);
  28. IoTGpioSetFunc(OUT_GPIO10, IOT_GPIO_FUNC_GPIO_10_GPIO);
  29. IoTGpioSetDir(OUT_GPIO10, IOT_GPIO_DIR_OUT);
  30. IoTGpioInit(OUT_GPIO11);
  31. IoTGpioSetFunc(OUT_GPIO11, IOT_GPIO_FUNC_GPIO_11_GPIO);
  32. IoTGpioSetDir(OUT_GPIO11, IOT_GPIO_DIR_OUT);
  33. IoTGpioInit(OUT_GPIO12);
  34. IoTGpioSetFunc(OUT_GPIO12, IOT_GPIO_FUNC_GPIO_12_GPIO);
  35. IoTGpioSetDir(OUT_GPIO12, IOT_GPIO_DIR_OUT);
  36. IoTGpioInit(OUT_GPIO13);
  37. IoTGpioSetFunc(OUT_GPIO13, IOT_GPIO_FUNC_GPIO_13_GPIO);
  38. IoTGpioSetDir(OUT_GPIO13, IOT_GPIO_DIR_OUT);
  39. return 0;
  40. }
  41. void pmd(int i )
  42. {
  43. switch (i)
  44. {
  45. case 0:
  46. IoTGpioSetOutputVal(OUT_GPIO12, 1);
  47. break;
  48. case 1:
  49. IoTGpioSetOutputVal(OUT_GPIO10, 1);
  50. break;
  51. case 2:
  52. IoTGpioSetOutputVal(OUT_GPIO9, 1);
  53. break;
  54. case 3:
  55. IoTGpioSetOutputVal(OUT_GPIO11, 1);
  56. break;
  57. case 4:
  58. IoTGpioSetOutputVal(OUT_GPIO13, 1);
  59. break;
  60. case 5:
  61. IoTGpioSetOutputVal(OUT_GPIO2, 1);
  62. break;
  63. case 6:
  64. IoTGpioSetOutputVal(OUT_GPIO7, 1);
  65. break;
  66. case 7:
  67. IoTGpioSetOutputVal(OUT_GPIO8, 1);
  68. break;
  69. default:
  70. IoTGpioSetOutputVal(OUT_GPIO2, 0); // 设置GPIO_7输出低电平关闭灯
  71. IoTGpioSetOutputVal(OUT_GPIO7, 0);
  72. IoTGpioSetOutputVal(OUT_GPIO8, 0);
  73. IoTGpioSetOutputVal(OUT_GPIO9, 0);
  74. IoTGpioSetOutputVal(OUT_GPIO10, 0);
  75. IoTGpioSetOutputVal(OUT_GPIO11, 0);
  76. IoTGpioSetOutputVal(OUT_GPIO12, 0); //
  77. IoTGpioSetOutputVal(OUT_GPIO13, 0);
  78. break;
  79. }
  80. }
  81. static void IotMainEntry(void)
  82. {
  83. int i=0;
  84. BH1750_InitMainLed();
  85. while(1)
  86. {
  87. for(i=0;i<9;i++)
  88. {
  89. pmd(i);
  90. // usleep(1000);
  91. osDelay(100);
  92. }
  93. }
  94. }
  95. static void TestTask(void)
  96. {
  97. osThreadAttr_t attr;
  98. attr.name = "IotMainEntry";
  99. attr.attr_bits = 0U;
  100. attr.cb_mem = NULL;
  101. attr.cb_size = 0U;
  102. attr.stack_mem = NULL;
  103. attr.stack_size = 1024;
  104. attr.priority = osPriorityNormal;
  105. if (osThreadNew((osThreadFunc_t)IotMainEntry, NULL, &attr) == NULL) {
  106. printf("[TestTask] Falied to create rtosv2_producer_consumer_main!\n");
  107. }
  108. }
  109. APP_FEATURE_INIT(TestTask);