Skip to content
Snippets Groups Projects
Commit a1380238 authored by Federico Mandelli's avatar Federico Mandelli
Browse files

[CanDriver] Automatically initialize CAN1 clock if we create a CAN2 CanDriver

parent d27297d9
No related branches found
No related tags found
2 merge requests!172[CanDriver] Automatically initialize CAN1 clock if we create a CAN2 CanDriver,!169[CanProtocol] Added stats in CanProtocol
Pipeline #6125 passed
...@@ -49,6 +49,11 @@ CanbusDriver::CanbusDriver(CAN_TypeDef* can, CanbusConfig config, ...@@ -49,6 +49,11 @@ CanbusDriver::CanbusDriver(CAN_TypeDef* can, CanbusConfig config,
BitTiming bitTiming) BitTiming bitTiming)
: can(can) : can(can)
{ {
if (can == CAN2)
{
// CAN2 also need the CAN1 clock
ClockUtils::enablePeripheralClock(CAN1);
}
// Enable the peripheral clock // Enable the peripheral clock
ClockUtils::enablePeripheralClock(can); ClockUtils::enablePeripheralClock(can);
...@@ -126,7 +131,14 @@ CanbusDriver::CanbusDriver(CAN_TypeDef* can, CanbusConfig config, ...@@ -126,7 +131,14 @@ CanbusDriver::CanbusDriver(CAN_TypeDef* can, CanbusConfig config,
} }
} }
CanbusDriver::~CanbusDriver() { ClockUtils::disablePeripheralClock(can); } CanbusDriver::~CanbusDriver()
{
ClockUtils::disablePeripheralClock(can);
if (can == CAN2)
{
ClockUtils::disablePeripheralClock(CAN1);
}
}
CanbusDriver::BitTiming CanbusDriver::calcBitTiming(AutoBitTiming autoBt) CanbusDriver::BitTiming CanbusDriver::calcBitTiming(AutoBitTiming autoBt)
{ {
......
...@@ -67,9 +67,6 @@ int main() ...@@ -67,9 +67,6 @@ int main()
bitTiming.baudRate = 50 * 1000; bitTiming.baudRate = 50 * 1000;
bitTiming.samplePoint = 87.5f / 100.0f; bitTiming.samplePoint = 87.5f / 100.0f;
// To make the CAN2 work the driver must be created also for CAN1
// TODO change this thing
CanbusDriver* driver1 = new CanbusDriver(CAN1, config, bitTiming);
CanbusDriver* driver2 = new CanbusDriver(CAN2, config, bitTiming); CanbusDriver* driver2 = new CanbusDriver(CAN2, config, bitTiming);
// // Prepare the can driver // // Prepare the can driver
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment