From 3bacab8bb79b68758a6f04d0d6546c6994eeccb1 Mon Sep 17 00:00:00 2001 From: Matteo Pignataro <matteo.pignataro@skywarder.eu> Date: Wed, 6 Apr 2022 19:36:23 +0200 Subject: [PATCH] [SX1278] Added stm32f429 support --- CMakeLists.txt | 2 +- .../drivers/sx1278/test-sx1278-serial.cpp | 28 +++++++++---------- 2 files changed, 15 insertions(+), 15 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index 2ff5af146..b5369a858 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -233,7 +233,7 @@ add_executable(test-sx1278-serial src/tests/drivers/sx1278/test-sx1278-serial.cpp src/tests/drivers/sx1278/test-sx1278-core.cpp ) -sbs_target(test-sx1278-serial stm32f407vg_stm32f4discovery) +sbs_target(test-sx1278-serial stm32f429zi_stm32f4discovery) #-----------------------------------------------------------------------------# # Tests - Sensors # diff --git a/src/tests/drivers/sx1278/test-sx1278-serial.cpp b/src/tests/drivers/sx1278/test-sx1278-serial.cpp index 11d57549e..c7c0bbeda 100644 --- a/src/tests/drivers/sx1278/test-sx1278-serial.cpp +++ b/src/tests/drivers/sx1278/test-sx1278-serial.cpp @@ -31,17 +31,17 @@ using namespace Boardcore; using namespace miosix; -SPIBus bus(SPI3); +SPIBus bus(SPI4); -GpioPin sck(GPIOC_BASE, 10); -GpioPin miso(GPIOC_BASE, 11); -GpioPin mosi(GPIOC_BASE, 12); -GpioPin cs(GPIOA_BASE, 1); -GpioPin dio(GPIOC_BASE, 15); +GpioPin sck(GPIOE_BASE, 2); +GpioPin miso(GPIOE_BASE, 5); +GpioPin mosi(GPIOE_BASE, 6); +GpioPin cs(GPIOC_BASE, 1); +GpioPin dio(GPIOF_BASE, 10); SX1278* sx1278 = nullptr; -void __attribute__((used)) EXTI15_IRQHandlerImpl() +void __attribute__((used)) EXTI10_IRQHandlerImpl() { if (sx1278) sx1278->handleDioIRQ(); @@ -54,16 +54,16 @@ void initBoard() miosix::FastInterruptDisableLock dLock; // Enable SPI3 - RCC->APB1ENR |= RCC_APB1ENR_SPI3EN; + RCC->APB2ENR |= RCC_APB2ENR_SPI4EN; // Enable SPI4 bus RCC_SYNC(); // Setup SPI pins sck.mode(miosix::Mode::ALTERNATE); - sck.alternateFunction(6); + sck.alternateFunction(5); miso.mode(miosix::Mode::ALTERNATE); - miso.alternateFunction(6); + miso.alternateFunction(5); mosi.mode(miosix::Mode::ALTERNATE); - mosi.alternateFunction(6); + mosi.alternateFunction(5); cs.mode(miosix::Mode::OUTPUT); dio.mode(miosix::Mode::INPUT); @@ -119,14 +119,14 @@ int main() return -1; } + printf("\n[sx1278] Initialization complete!\n"); + std::thread recv([]() { recvLoop(); }); std::thread send([]() { sendLoop(); }); - printf("\n[sx1278] Initialization complete!\n"); - // God please forgive me // FIXME(davide.mor): ABSOLUTELY fix this - miosix::Thread::sleep(10000); + miosix::Thread::sleep(20000); miosix::reboot(); return 0; -- GitLab