int otto_status = 0;\r
\r
int test = 0;\r
+int error = 0;\r
\r
/* USER CODE END PV */\r
\r
VelocityCommand_size);\r
\r
/* USER CODE END 2 */\r
+ \r
+ \r
\r
/* Infinite loop */\r
/* USER CODE BEGIN WHILE */\r
VelocityCommand_size);\r
}\r
\r
+void HAL_UART_ErrorCallback(UART_HandleTypeDef *UartHandle){\r
+ error++;\r
+ HAL_UART_Receive_DMA(&huart6, (uint8_t*) &proto_buffer_rx,\r
+ VelocityCommand_size);\r
+}\r
+\r
void HAL_GPIO_EXTI_Callback(uint16_t GPIO_Pin) {\r
//Blue user button on the NUCLEO board\r
if (GPIO_Pin == user_button_Pin) {\r
huart6.Init.HwFlowCtl = UART_HWCONTROL_RTS;\r
huart6.Init.OverSampling = UART_OVERSAMPLING_16;\r
huart6.Init.OneBitSampling = UART_ONE_BIT_SAMPLE_DISABLE;\r
- huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_NO_INIT;\r
+ huart6.AdvancedInit.AdvFeatureInit = UART_ADVFEATURE_DMADISABLEONERROR_INIT;\r
+ huart6.AdvancedInit.DMADisableonRxError = UART_ADVFEATURE_DMA_DISABLEONRXERROR;\r
if (HAL_UART_Init(&huart6) != HAL_OK)\r
{\r
Error_Handler();\r
hdma_usart6_tx.Init.MemInc = DMA_MINC_ENABLE;\r
hdma_usart6_tx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;\r
hdma_usart6_tx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;\r
- hdma_usart6_tx.Init.Mode = DMA_NORMAL;\r
+ hdma_usart6_tx.Init.Mode = DMA_CIRCULAR;\r
hdma_usart6_tx.Init.Priority = DMA_PRIORITY_LOW;\r
hdma_usart6_tx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;\r
if (HAL_DMA_Init(&hdma_usart6_tx) != HAL_OK)\r
hdma_usart6_rx.Init.MemInc = DMA_MINC_ENABLE;\r
hdma_usart6_rx.Init.PeriphDataAlignment = DMA_PDATAALIGN_BYTE;\r
hdma_usart6_rx.Init.MemDataAlignment = DMA_MDATAALIGN_BYTE;\r
- hdma_usart6_rx.Init.Mode = DMA_NORMAL;\r
+ hdma_usart6_rx.Init.Mode = DMA_CIRCULAR;\r
hdma_usart6_rx.Init.Priority = DMA_PRIORITY_LOW;\r
hdma_usart6_rx.Init.FIFOMode = DMA_FIFOMODE_DISABLE;\r
if (HAL_DMA_Init(&hdma_usart6_rx) != HAL_OK)\r
Dma.USART6_RX.1.Instance=DMA2_Stream1
Dma.USART6_RX.1.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_RX.1.MemInc=DMA_MINC_ENABLE
-Dma.USART6_RX.1.Mode=DMA_NORMAL
+Dma.USART6_RX.1.Mode=DMA_CIRCULAR
Dma.USART6_RX.1.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_RX.1.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_RX.1.Priority=DMA_PRIORITY_LOW
Dma.USART6_TX.0.Instance=DMA2_Stream6
Dma.USART6_TX.0.MemDataAlignment=DMA_MDATAALIGN_BYTE
Dma.USART6_TX.0.MemInc=DMA_MINC_ENABLE
-Dma.USART6_TX.0.Mode=DMA_NORMAL
+Dma.USART6_TX.0.Mode=DMA_CIRCULAR
Dma.USART6_TX.0.PeriphDataAlignment=DMA_PDATAALIGN_BYTE
Dma.USART6_TX.0.PeriphInc=DMA_PINC_DISABLE
Dma.USART6_TX.0.Priority=DMA_PRIORITY_LOW
PG8.Mode=RTS_Only
PG8.Signal=USART6_RTS
PinOutPanel.RotationAngle=0
-ProjectManager.AskForMigrate=true
+ProjectManager.AskForMigrate=false
ProjectManager.BackupPrevious=false
ProjectManager.CompilerOptimize=6
ProjectManager.ComputerToolchain=false
TIM6.Period=159
TIM6.Prescaler=9999
USART6.BaudRate=9600
-USART6.IPParameters=VirtualMode-Asynchronous,WordLength,Parity,BaudRate
+USART6.DMADisableonRxErrorParam=ADVFEATURE_DMA_DISABLEONRXERROR
+USART6.IPParameters=VirtualMode-Asynchronous,WordLength,Parity,BaudRate,DMADisableonRxErrorParam
USART6.Parity=PARITY_NONE
USART6.VirtualMode-Asynchronous=VM_ASYNC
USART6.WordLength=WORDLENGTH_8B
VP_TIM6_VS_ClockSourceINT.Mode=Enable_Timer
VP_TIM6_VS_ClockSourceINT.Signal=TIM6_VS_ClockSourceINT
board=custom
-isbadioc=false
<node name="serial_receiver" pkg="serial_bridge" type="serial_receiver.py"/>
<!-- Node used to slow down /cmd_vel transmission to 10Hz -->
- <node name="cmd_vel_throttler" type="throttle" pkg="topic_tools"
- args="messages /cmd_vel 20 /cmd_vel_throttled" />
+ <!-- <node name="cmd_vel_throttler" type="throttle" pkg="topic_tools"
+ args="messages /cmd_vel 10000 /cmd_vel_throttled" /> -->
<!-- Serial port -->
<param name="serial_port" value="/dev/ttyUSB0"/>