IOC Configuration USART2
Basic Parameters
Don’t touch Advanced Parameters
Advanced Features
Enable TX/RX Inversion (SBUS is inverted UART signal)
DMA Configuration
NVIC Settings
Getting Code Running
Add these lines of your code to main.cpp
.
/* Private includes ----------------------------------------------------------*/ /* USER CODE BEGIN Includes */ #include "SBUSReceiver.hpp" #include "RCReceiver_config.hpp" /* USER CODE END Includes */
/* USER CODE BEGIN 2 */ SBus sbus_data; RCControl control_data; /* USER CODE END 2 */ /* Infinite loop */ /* USER CODE BEGIN WHILE */ while (1) { /* USER CODE END WHILE */ sbus_data = sbus_pointer->GetSBUS(); control_data = sbus_pointer->GetRCControl(); /* USER CODE BEGIN 3 */ }
Building and Flashing
Build using CMAKE with the appropriate command. Building inside STM32CubeIDE will give errors.
When flashing, go to debug configurations and change the C/C++ Application to point to ZeroPilot.elf
Also, select the “Disable auto build” option.
Troubleshooting
If all the values do not change and have a value of 1000 even when you move the controller, your ioc is probably not configured correctly. Otherwise, unplug and replug the tracer.
To Do
- Configure Nucleo pins
- Test data with a logic analyzer and RC controller
- Debug with interrupts
- Transmit receive signal to nucleo to check if the data is similar
Add Comment