main.cpp 3.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135
  1. #include "stm32l0xx_hal.h"
  2. #include "stm32l0xx_nucleo.h"
  3. #include "usart.h"
  4. #include "io.h"
  5. #include "lt8920_trs.h"
  6. #include "lt8920_test.h"
  7. #include "x-nucleo-6180xa1.h"
  8. #include <stdio.h>
  9. void clock_hsi_init(void);
  10. static void Error_Handler(void);
  11. //#define SENDER
  12. #define RECEIVER
  13. //#define SCANNER
  14. int main()
  15. {
  16. HAL_Init();
  17. clock_hsi_init();
  18. SystemCoreClockUpdate();
  19. BSP_LED_Init(LED2);
  20. BSP_PB_Init(BUTTON_USER, BUTTON_MODE_EXTI);
  21. usart_init();
  22. printf("Controller starting...\r\n");
  23. //io_init();
  24. //XNUCLEO6180XA1_GPIO_Init();
  25. BSP_LED_On(LED2);
  26. // -------------------------------------------------------------------------- //
  27. // RF module
  28. lt_init();
  29. #if defined (SCANNER)
  30. lt_scanner_init();
  31. #elif defined (SENDER) || defined (RECEIVER)
  32. lt_common_init();
  33. #endif
  34. while (1)
  35. {
  36. BSP_LED_Toggle(LED2);
  37. //HAL_Delay(200);
  38. //lt_scanner_test();
  39. //lt_spi_test();
  40. #if defined (SENDER)
  41. lt_sender_test();
  42. #elif defined (RECEIVER)
  43. lt_receiver_test();
  44. #elif defined (SCANNER)
  45. lt_scanner_test();
  46. #endif
  47. }
  48. }
  49. //
  50. void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
  51. {
  52. if (GPIO_Pin == KEY_BUTTON_PIN)
  53. {
  54. //BSP_LED_Toggle(LED2);
  55. //lt_sender_test();
  56. }
  57. }
  58. void clock_hsi_init(void)
  59. {
  60. RCC_ClkInitTypeDef RCC_ClkInitStruct;
  61. RCC_OscInitTypeDef RCC_OscInitStruct;
  62. __HAL_RCC_PWR_CLK_ENABLE();
  63. __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
  64. /*
  65. RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
  66. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
  67. if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
  68. {
  69. Error_Handler();
  70. }
  71. */
  72. /* -2- Enable HSI Oscillator, select it as PLL source and finally activate the PLL */
  73. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
  74. RCC_OscInitStruct.HSIState = RCC_HSI_ON;
  75. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_ON;
  76. RCC_OscInitStruct.PLL.PLLSource = RCC_PLLSOURCE_HSI;
  77. RCC_OscInitStruct.PLL.PLLMUL = RCC_PLL_MUL4;
  78. RCC_OscInitStruct.PLL.PLLDIV = RCC_PLL_DIV2;
  79. RCC_OscInitStruct.HSICalibrationValue = 0x10;
  80. if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  81. {
  82. Error_Handler();
  83. }
  84. /* -3- Select the PLL as system clock source and configure the HCLK, PCLK1 and PCLK2 clocks dividers */
  85. RCC_ClkInitStruct.ClockType = (RCC_CLOCKTYPE_SYSCLK | RCC_CLOCKTYPE_HCLK | RCC_CLOCKTYPE_PCLK1 | RCC_CLOCKTYPE_PCLK2);
  86. RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_PLLCLK;
  87. RCC_ClkInitStruct.AHBCLKDivider = RCC_SYSCLK_DIV1;
  88. RCC_ClkInitStruct.APB1CLKDivider = RCC_HCLK_DIV1;
  89. RCC_ClkInitStruct.APB2CLKDivider = RCC_HCLK_DIV1;
  90. if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
  91. {
  92. Error_Handler();
  93. }
  94. /* -4- Optional: Disable HSE Oscillator (if the HSE is no more needed by the application) */
  95. RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
  96. RCC_OscInitStruct.HSEState = RCC_HSE_OFF;
  97. RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
  98. if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
  99. {
  100. /* Initialization Error */
  101. Error_Handler();
  102. }
  103. }
  104. //
  105. static void Error_Handler(void)
  106. {
  107. BSP_LED_On(LED2);
  108. while(1) {}
  109. }