Europalab Devices produces a LoRaWAN transmitting client node, specialised for higher research of actuator and sensor assisted IoT networks. https://dev.europalab.com/nlnet/20200000/
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

73 line
2.2KB

  1. #include "unittest_transport.h"
  2. #include <main.h>
  3. #define USARTx USART2
  4. #define USARTx_CLK_ENABLE() __HAL_RCC_USART2_CLK_ENABLE()
  5. #define USARTx_CLK_DISABLE() __HAL_RCC_USART2_CLK_DISABLE()
  6. #define USARTx_RX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
  7. #define USARTx_TX_GPIO_CLK_ENABLE() __HAL_RCC_GPIOA_CLK_ENABLE()
  8. #define USARTx_RX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
  9. #define USARTx_TX_GPIO_CLK_DISABLE() __HAL_RCC_GPIOA_CLK_DISABLE()
  10. #define USARTx_FORCE_RESET() __HAL_RCC_USART2_FORCE_RESET()
  11. #define USARTx_RELEASE_RESET() __HAL_RCC_USART2_RELEASE_RESET()
  12. #define USARTx_TX_PIN GPIO_PIN_2
  13. #define USARTx_TX_GPIO_PORT GPIOA
  14. #define USARTx_TX_AF GPIO_AF7_USART2
  15. #define USARTx_RX_PIN GPIO_PIN_3
  16. #define USARTx_RX_GPIO_PORT GPIOA
  17. #define USARTx_RX_AF GPIO_AF7_USART2
  18. static UART_HandleTypeDef UartHandle;
  19. void unittest_uart_begin()
  20. {
  21. GPIO_InitTypeDef GPIO_InitStruct;
  22. USARTx_TX_GPIO_CLK_ENABLE();
  23. USARTx_RX_GPIO_CLK_ENABLE();
  24. USARTx_CLK_ENABLE();
  25. GPIO_InitStruct.Pin = USARTx_TX_PIN;
  26. GPIO_InitStruct.Mode = GPIO_MODE_AF_PP;
  27. GPIO_InitStruct.Pull = GPIO_PULLUP;
  28. GPIO_InitStruct.Speed = GPIO_SPEED_FAST;
  29. GPIO_InitStruct.Alternate = USARTx_TX_AF;
  30. HAL_GPIO_Init(USARTx_TX_GPIO_PORT, &GPIO_InitStruct);
  31. GPIO_InitStruct.Pin = USARTx_RX_PIN;
  32. GPIO_InitStruct.Alternate = USARTx_RX_AF;
  33. HAL_GPIO_Init(USARTx_RX_GPIO_PORT, &GPIO_InitStruct);
  34. UartHandle.Instance = USARTx;
  35. UartHandle.Init.BaudRate = 115200; // Or 9600
  36. UartHandle.Init.WordLength = UART_WORDLENGTH_8B;
  37. UartHandle.Init.StopBits = UART_STOPBITS_1;
  38. UartHandle.Init.Parity = UART_PARITY_NONE;
  39. UartHandle.Init.HwFlowCtl = UART_HWCONTROL_NONE;
  40. UartHandle.Init.Mode = UART_MODE_TX_RX;
  41. UartHandle.Init.OverSampling = UART_OVERSAMPLING_16;
  42. if (HAL_UART_Init(&UartHandle) != HAL_OK) {
  43. while (1) {}
  44. }
  45. }
  46. void unittest_uart_putchar(char c)
  47. {
  48. HAL_UART_Transmit(&UartHandle, (uint8_t*)(&c), 1, 1000);
  49. }
  50. void unittest_uart_flush() {}
  51. void unittest_uart_end() {
  52. USARTx_CLK_DISABLE();
  53. USARTx_RX_GPIO_CLK_DISABLE();
  54. USARTx_TX_GPIO_CLK_DISABLE();
  55. }