lora_comm.c 4.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185
  1. #include "main.h"
  2. #include "usart.h"
  3. #include "stdio.h"
  4. #include "string.h"
  5. #include "stdlib.h"
  6. #include "lora_comm.h"
  7. extern uart_comm uart1;
  8. //设置工作模式
  9. void set_work_mode(int index)
  10. {
  11. uint8_t buf[18] = {0};
  12. uint8_t len;
  13. len = sizeof("AT+WORKMODE=82\r\n");
  14. switch(index)
  15. {
  16. case 0:
  17. memcpy(buf,"AT+WORKMODE=82\r\n", len);
  18. break;
  19. case 1:
  20. memcpy(buf,"AT+WORKMODE=81\r\n", len);
  21. break;
  22. case 2:
  23. memcpy(buf,"AT+WORKMODE=21\r\n", len);
  24. break;
  25. case 3:
  26. memcpy(buf,"AT+WORKMODE=11\r\n", len);
  27. break;
  28. case 4:
  29. memcpy(buf,"AT+WORKMODE=12\r\n", len);
  30. break;
  31. case 5:
  32. len = sizeof("AT+ENTERSLEEP\r\n");
  33. memcpy(buf,"AT+ENTERSLEEP\r\n", len);
  34. break;
  35. }
  36. //HAL_UART_Transmit_DMA(uart1.uart, buf, sizeof("18"));
  37. HAL_UART_Transmit(uart1.uart, buf, len, 100);
  38. return;
  39. }
  40. //设置收发频率
  41. void set_work_freq(int index)
  42. {
  43. uint8_t buf[64] = {0};
  44. uint8_t len;
  45. len = sizeof("AT+FREQ=473200000,473200000,473200000,473200000\r\n");
  46. switch(index)
  47. {
  48. case 0:
  49. memcpy(buf,"AT+FREQ=473200000,473200000,473200000,473200000\r\n", len);
  50. break;
  51. case 1:
  52. memcpy(buf,"AT+FREQ=483200000,483200000,483200000,483200000\r\n", len);
  53. //memcpy(buf,"AT+FREQ=485125000,485125000,485125000,485125000\r\n", len);
  54. break;
  55. case 2:
  56. memcpy(buf,"AT+FREQ=493200000,493200000,493200000,493200000\r\n", len);
  57. break;
  58. case 3:
  59. memcpy(buf,"AT+FREQ=503200000,503200000,503200000,503200000\r\n", len);
  60. break;
  61. }
  62. //HAL_UART_Transmit_DMA(uart1.uart, buf, sizeof("51"));
  63. HAL_UART_Transmit(uart1.uart, buf, len, 100);
  64. return;
  65. }
  66. /*
  67. 4 ---速率 441bps
  68. 5 ---速率 934bps
  69. 6 ---速率 1868bps
  70. 7 ---速率 3736bps
  71. 8 ---速率 7472bps
  72. 9 ---速率 14946bps
  73. 10 ---速率 29891bps
  74. 11 ---速率 59783bps
  75. 18 ---速率 85106bps
  76. */
  77. void set_rf_rate(uint8_t rate_flag)
  78. {
  79. char buf[16] = {0};
  80. uint8_t len;
  81. char tx_rate;
  82. char rx_rate;
  83. switch(rate_flag)
  84. {
  85. case 5:
  86. tx_rate = '5';
  87. rx_rate = '5';
  88. break;
  89. case 6:
  90. tx_rate = '6';
  91. rx_rate = '6';
  92. break;
  93. }
  94. //char tx[4] = itoa(tx_rate);
  95. //len = sizeof("AT+RATE=18,18\r\n");
  96. //memcpy(buf, "AT+RATE=4,4\r\n", len);
  97. sprintf(buf, "AT+RATE=%s,%s\r\n", &tx_rate, &rx_rate);
  98. len = sizeof(buf);
  99. //HAL_UART_Transmit_DMA(uart1.uart, buf, sizeof("18"));
  100. HAL_UART_Transmit(uart1.uart, (uint8_t *)buf, len, 100);
  101. return;
  102. }
  103. //设置发射功率
  104. void set_rf_tx_power(int index)
  105. {
  106. uint8_t buf[16] = {0};
  107. uint8_t len;
  108. switch(index)
  109. {
  110. case 0:
  111. memcpy(buf,"AT+TXP=0\r\n", sizeof("AT+TXP=0\r\n"));
  112. break;
  113. case 1:
  114. memcpy(buf,"AT+TXP=1\r\n", sizeof("AT+TXP=1\r\n"));
  115. break;
  116. case 2:
  117. memcpy(buf,"AT+TXP=2\r\n", sizeof("AT+TXP=2\r\n"));
  118. break;
  119. case 3:
  120. memcpy(buf,"AT+TXP=3\r\n", sizeof("AT+TXP=3\r\n"));
  121. break;
  122. case 4:
  123. memcpy(buf,"AT+TXP=4\r\n", sizeof("AT+TXP=4\r\n"));
  124. break;
  125. case 5:
  126. memcpy(buf,"AT+TXP=5\r\n", sizeof("AT+TXP=5\r\n"));
  127. break;
  128. case 6:
  129. memcpy(buf,"AT+TXP=6\r\n", sizeof("AT+TXP=6\r\n"));
  130. break;
  131. case 7:
  132. memcpy(buf,"AT+TXP=7\r\n", sizeof("AT+TXP=7\r\n"));
  133. break;
  134. case 8:
  135. memcpy(buf,"AT+TXP=8\r\n", sizeof("AT+TXP=8\r\n"));
  136. break;
  137. case 9:
  138. memcpy(buf,"AT+TXP=9\r\n", sizeof("AT+TXP=9\r\n"));
  139. break;
  140. case 10:
  141. memcpy(buf,"AT+TXP=10\r\n", sizeof("AT+TXP=10\r\n"));
  142. break;
  143. case 11:
  144. memcpy(buf,"AT+TXP=11\r\n", sizeof("AT+TXP=11\r\n"));
  145. break;
  146. case 12:
  147. memcpy(buf,"AT+TXP=12\r\n", sizeof("AT+TXP=12\r\n"));
  148. break;
  149. case 13:
  150. memcpy(buf,"AT+TXP=13\r\n", sizeof("AT+TXP=13\r\n"));
  151. break;
  152. case 14:
  153. memcpy(buf,"AT+TXP=14\r\n", sizeof("AT+TXP=14\r\n"));
  154. break;
  155. case 15:
  156. memcpy(buf,"AT+TXP=15\r\n", sizeof("AT+TXP=15\r\n"));
  157. break;
  158. }
  159. //HAL_UART_Transmit_DMA(uart1.uart, buf, sizeof("12"));
  160. HAL_UART_Transmit(uart1.uart, buf, sizeof("AT+TXP=15\r\n"), 100);
  161. return;
  162. }