Преглед изворни кода

Подключил примеры приема/передачи.

TelenkovDmitry пре 9 месеци
родитељ
комит
4f5046f2d3

BIN
doc/um1852-xnucleo6180xa1-proximity-and-ambient-light-sensor-expansion-board-based-on-vl6180x-for-stm32-nucleo-stmicroelectronics.pdf


+ 25 - 1
modules/lt8920/lt8920_test.cpp

@@ -49,7 +49,7 @@ void lt_scanner_test(void)
 }
 }
 
 
 //
 //
-void lt_sender_init(void)
+void lt_common_init(void)
 {
 {
     lt.begin();
     lt.begin();
     lt.setCurrentControl(0, 0);
     lt.setCurrentControl(0, 0);
@@ -66,4 +66,28 @@ void lt_sender_test(void)
     HAL_Delay(100);
     HAL_Delay(100);
     sprintf(data, "number: %d\n", number++);
     sprintf(data, "number: %d\n", number++);
     lt.sendPacket((uint8_t*)data, strlen(data) + 1);
     lt.sendPacket((uint8_t*)data, strlen(data) + 1);
+}
+
+// -------------------------------------------------------------------------- //
+
+
+
+//
+void lt_receiver_test(void)
+{
+    if (lt.available())
+    {
+        uint8_t data[16];
+        int packet_size = lt.read(data, 16);
+        
+        if (packet_size > 0)
+        {
+            printf("Packet read OK: %s\r\n", (char*)data);
+        }
+        else
+        {
+            printf("CRC is error!\r\n");
+        }
+        lt.startListening();
+    }
 }
 }

+ 3 - 1
modules/lt8920/lt8920_test.h

@@ -9,10 +9,12 @@ void lt_scanner_init(void);
 void lt_scanner_test(void);
 void lt_scanner_test(void);
 
 
 //
 //
-void lt_sender_init(void);
+void lt_common_init(void);
 
 
 //
 //
 void lt_sender_test(void);
 void lt_sender_test(void);
 
 
+//
+void lt_receiver_test(void);
 
 
 #endif
 #endif

+ 18 - 0
modules/misc/io.cpp

@@ -0,0 +1,18 @@
+#include "stm32l0xx_hal.h"
+#include "io.h"
+
+
+//
+void io_init(void)
+{
+    GPIO_InitTypeDef  GPIO_InitStruct;
+    
+    __HAL_RCC_GPIOA_CLK_ENABLE();
+
+    // switch
+    GPIO_InitStruct.Pin       = GPIO_PIN_7;
+    GPIO_InitStruct.Mode      = GPIO_MODE_INPUT;
+    GPIO_InitStruct.Pull      = GPIO_PULLUP;
+    GPIO_InitStruct.Speed     = GPIO_SPEED_FREQ_HIGH;
+    HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
+}

+ 7 - 0
modules/misc/io.h

@@ -0,0 +1,7 @@
+#ifndef __IO_H
+#define __IO_H
+
+//
+void io_init(void);
+  
+#endif

Разлика између датотеке није приказан због своје велике величине
+ 355 - 329
project/ewarm/lt8920.dep


+ 1 - 1
project/ewarm/lt8920.ewd

@@ -1029,7 +1029,7 @@
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>CCSwoClockAuto</name>
                     <name>CCSwoClockAuto</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>CCSwoClockEdit</name>
                     <name>CCSwoClockEdit</name>

+ 9 - 2
project/ewarm/lt8920.ewp

@@ -358,6 +358,7 @@
                     <state>$PROJ_DIR$/../../modules/debug</state>
                     <state>$PROJ_DIR$/../../modules/debug</state>
                     <state>$PROJ_DIR$/../../modules/lt8920</state>
                     <state>$PROJ_DIR$/../../modules/lt8920</state>
                     <state>$PROJ_DIR$/../../modules/vl6180x</state>
                     <state>$PROJ_DIR$/../../modules/vl6180x</state>
+                    <state>$PROJ_DIR$/../../modules/misc</state>
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>CCStdIncCheck</name>
                     <name>CCStdIncCheck</name>
@@ -772,11 +773,11 @@
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>IlinkIcfOverride</name>
                     <name>IlinkIcfOverride</name>
-                    <state>0</state>
+                    <state>1</state>
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>IlinkIcfFile</name>
                     <name>IlinkIcfFile</name>
-                    <state>$TOOLKIT_DIR$\config\linker\ST\stm32l053x8.icf</state>
+                    <state>$PROJ_DIR$\stm32l053xx_flash.icf</state>
                 </option>
                 </option>
                 <option>
                 <option>
                     <name>IlinkIcfFileSlave</name>
                     <name>IlinkIcfFileSlave</name>
@@ -2317,6 +2318,12 @@
                 <name>$PROJ_DIR$\..\..\modules\lt8920\lt8920_trs.cpp</name>
                 <name>$PROJ_DIR$\..\..\modules\lt8920\lt8920_trs.cpp</name>
             </file>
             </file>
         </group>
         </group>
+        <group>
+            <name>misc</name>
+            <file>
+                <name>$PROJ_DIR$\..\..\modules\misc\io.cpp</name>
+            </file>
+        </group>
         <group>
         <group>
             <name>vl6180x</name>
             <name>vl6180x</name>
             <file>
             <file>

+ 6 - 0
project/ewarm/lt8920.ewt

@@ -2575,6 +2575,12 @@
                 <name>$PROJ_DIR$\..\..\modules\lt8920\lt8920_trs.cpp</name>
                 <name>$PROJ_DIR$\..\..\modules\lt8920\lt8920_trs.cpp</name>
             </file>
             </file>
         </group>
         </group>
+        <group>
+            <name>misc</name>
+            <file>
+                <name>$PROJ_DIR$\..\..\modules\misc\io.cpp</name>
+            </file>
+        </group>
         <group>
         <group>
             <name>vl6180x</name>
             <name>vl6180x</name>
             <file>
             <file>

+ 46 - 9
user/main.cpp

@@ -1,6 +1,7 @@
 #include "stm32l0xx_hal.h"
 #include "stm32l0xx_hal.h"
 #include "stm32l0xx_nucleo.h"
 #include "stm32l0xx_nucleo.h"
 #include "usart.h"
 #include "usart.h"
+#include "io.h"
 #include "lt8920_trs.h"
 #include "lt8920_trs.h"
 #include "lt8920_test.h"
 #include "lt8920_test.h"
 #include "x-nucleo-6180xa1.h"
 #include "x-nucleo-6180xa1.h"
@@ -9,11 +10,14 @@
 void clock_hsi_init(void);
 void clock_hsi_init(void);
 static void Error_Handler(void);
 static void Error_Handler(void);
 
 
+//#define SENDER
+#define RECEIVER
+//#define SCANNER
 
 
 int main()
 int main()
 {
 {
     HAL_Init();
     HAL_Init();
-     
+    
     clock_hsi_init();
     clock_hsi_init();
     
     
     SystemCoreClockUpdate();
     SystemCoreClockUpdate();
@@ -25,22 +29,36 @@ int main()
     usart_init();
     usart_init();
     printf("Controller starting...\r\n");
     printf("Controller starting...\r\n");
     
     
-    XNUCLEO6180XA1_GPIO_Init();
+    //io_init();
+    //XNUCLEO6180XA1_GPIO_Init();
+    
+    BSP_LED_On(LED2);
     
     
 // -------------------------------------------------------------------------- //
 // -------------------------------------------------------------------------- //
 // RF module
 // RF module
     lt_init();
     lt_init();
 
 
-    //lt_scanner_init();
+#if defined (SCANNER)    
+    lt_scanner_init();
+#elif defined (SENDER) || defined (RECEIVER)
+    lt_common_init();
+#endif
 
 
-    lt_sender_init();
-    
     while (1)
     while (1)
     {
     {
-        //BSP_LED_Toggle(LED2);
+        BSP_LED_Toggle(LED2);
+        //HAL_Delay(200);
+        
+        
         //lt_scanner_test();
         //lt_scanner_test();
         //lt_spi_test();
         //lt_spi_test();
-        //HAL_Delay(250);
+#if defined (SENDER)      
+        lt_sender_test();
+#elif defined (RECEIVER)
+        lt_receiver_test();
+#elif defined (SCANNER)
+        lt_scanner_test();
+#endif        
     }
     }
 }
 }
 
 
@@ -49,8 +67,8 @@ void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin)
 {
 {
     if (GPIO_Pin == KEY_BUTTON_PIN)
     if (GPIO_Pin == KEY_BUTTON_PIN)
     {
     {
-        BSP_LED_Toggle(LED2);
-        lt_sender_test();
+        //BSP_LED_Toggle(LED2);
+        //lt_sender_test();
     }
     }
 }
 }
 
 
@@ -63,6 +81,15 @@ void clock_hsi_init(void)
     __HAL_RCC_PWR_CLK_ENABLE();
     __HAL_RCC_PWR_CLK_ENABLE();
     
     
     __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
     __HAL_PWR_VOLTAGESCALING_CONFIG(PWR_REGULATOR_VOLTAGE_SCALE1);
+  
+/*    
+    RCC_ClkInitStruct.ClockType = RCC_CLOCKTYPE_SYSCLK;
+    RCC_ClkInitStruct.SYSCLKSource = RCC_SYSCLKSOURCE_HSE;
+    if(HAL_RCC_ClockConfig(&RCC_ClkInitStruct, FLASH_LATENCY_1) != HAL_OK)
+    {
+        Error_Handler();
+    }
+*/    
     
     
     /* -2- Enable HSI Oscillator, select it as PLL source and finally activate the PLL */
     /* -2- Enable HSI Oscillator, select it as PLL source and finally activate the PLL */
     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
     RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSI;
@@ -87,6 +114,16 @@ void clock_hsi_init(void)
     {
     {
         Error_Handler();
         Error_Handler();
     }
     }
+    
+    /* -4- Optional: Disable HSE Oscillator (if the HSE is no more needed by the application) */
+  RCC_OscInitStruct.OscillatorType = RCC_OSCILLATORTYPE_HSE;
+  RCC_OscInitStruct.HSEState = RCC_HSE_OFF;
+  RCC_OscInitStruct.PLL.PLLState = RCC_PLL_NONE;
+  if(HAL_RCC_OscConfig(&RCC_OscInitStruct) != HAL_OK)
+  {
+    /* Initialization Error */
+    Error_Handler();
+  }
 }
 }
 
 
 //
 //

+ 1 - 0
user/stm32l0xx_it.c

@@ -59,6 +59,7 @@ void NMI_Handler(void)
 void HardFault_Handler(void)
 void HardFault_Handler(void)
 {
 {
   /* Go to infinite loop when Hard Fault exception occurs */
   /* Go to infinite loop when Hard Fault exception occurs */
+  BSP_LED_On(LED2);
   while (1)
   while (1)
   {
   {
   }
   }

Неке датотеке нису приказане због велике количине промена