|
|
@@ -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);
|