Browse Source

resolve comm fix

Juraj Ďuďák 8 months ago
parent
commit
a1bf5d0a19
2 changed files with 9 additions and 8 deletions
  1. 8 7
      Core/Src/main.c
  2. 1 1
      Modules/nbus

+ 8 - 7
Core/Src/main.c

@@ -85,7 +85,7 @@ static void MX_USART1_UART_Init(void);
 /* Private user code ---------------------------------------------------------*/
 /* USER CODE BEGIN 0 */
 #define MAX_SYSTICK  0xFFFFFFFF
-uint8_t data[64];	// tmp read buffer
+uint8_t data[NBUS_PACKET_MAX_SIZE];	// tmp read buffer
 uint8_t *dataUART;  // pointee for rx_buffer
 volatile uint8_t dataL;
 volatile uint8_t dataI;
@@ -150,8 +150,8 @@ static inline uint8_t loop_callback(nBusStateCallbackType_t state_check) {
 			dataI = 0;
 			data[0] = 0;
 			uart_timeout = MAX_SYSTICK;
-			led_off();
-			HAL_UARTEx_ReceiveToIdle_DMA(&huart1, data, 64);
+//			led_off();
+			HAL_UARTEx_ReceiveToIdle_DMA(&huart1, data, NBUS_PACKET_MAX_SIZE);
 			return 1;  // UART receive timeout
 		}
 		return 0;
@@ -162,13 +162,12 @@ static inline uint8_t loop_callback(nBusStateCallbackType_t state_check) {
 
 //  Application callbacks
 void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
-	HAL_UARTEx_ReceiveToIdle_DMA(huart, data, 64);
+	HAL_UARTEx_ReceiveToIdle_DMA(huart, data, NBUS_PACKET_MAX_SIZE);
 	uint8_t copy_offset = 0;
 	if (dataL == 0) {
 		uart_timeout = HAL_GetTick();
 		dataL = data[0];
 		dataI = 0;
-		led_on();
 		if (Size == 1) {
 			return;
 		}
@@ -181,7 +180,6 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
 
 	dataI += Size;
 	if(dataI >= dataL){
-		led_off();
 		nbus_cb_UART_RX(dataI);
 		dataL=0;
 		dataI=0;
@@ -190,6 +188,10 @@ void HAL_UARTEx_RxEventCallback(UART_HandleTypeDef *huart, uint16_t Size){
 	}
 }
 
+void HAL_UART_ErrorCallback(UART_HandleTypeDef *huart){
+	HAL_UARTEx_ReceiveToIdle_DMA(huart, data, NBUS_PACKET_MAX_SIZE);
+}
+
 void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {
 #if MODULE == MODULE_IMU
 	icm_data_ready = 1;
@@ -263,7 +265,6 @@ int main(void)
   periph.rtc = &hrtc;
 #endif
 
-  //HAL_UARTEx_ReceiveToIdle_DMA(&huart2, data, 64);
 #if MODULE == MODULE_DUMMY
   nbus_init(getDummyDriver(), &hw_platform);
   nbus_init_app(NULL, NULL);

+ 1 - 1
Modules/nbus

@@ -1 +1 @@
-Subproject commit f0b26d6f998502fb6542f1f63e81a6b41922238f
+Subproject commit 05d26e7490651ca9ad48728af0a48ce1b7dff422