pub
Fork of CANnucleo by
Diff: cannucleo_api.h
- Revision:
- 24:c5d348e65e24
- Parent:
- 20:bcd8161f8f6c
- Child:
- 28:eed6929956ea
diff -r ea766d08c9db -r c5d348e65e24 cannucleo_api.h --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/cannucleo_api.h Sat Aug 13 12:44:12 2016 +0000 @@ -0,0 +1,95 @@ +/* mbed Microcontroller Library + * Copyright (c) 2006-2013 ARM Limited + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + * + * Modified by Zoltan Hudak <hudakz@inbox.com> + * + */ +#ifndef CANNUCLEO_API_H +#define CANNUCLEO_API_H + +#include "device.h" +#include "PinNames.h" +#include "PeripheralNames.h" +#include "can_helper.h" + +//#define DEBUG 1 + +#undef CAN + +#if defined(TARGET_NUCLEO_F072RB) || \ + defined(TARGET_NUCLEO_F091RC) + #include "stm32f0xx_hal_msp.h" +#elif defined(TARGET_NUCLEO_F103RB) + #include "stm32f1xx_hal_msp.h" +#elif defined(TARGET_NUCLEO_F302R8) || \ + defined(TARGET_NUCLEO_F303RE) || \ + defined(TARGET_NUCLEO_F303K8) || \ + defined(TARGET_NUCLEO_F334R8) || \ + defined(TARGET_DISCO_F334C8) + #include "stm32f3xx_hal_msp.h" +#elif defined(TARGET_NUCLEO_F446RE) + #include "stm32f4xx_hal_msp.h" +#endif + +#ifdef __cplusplus +extern "C" { +#endif + +typedef enum { + IRQ_RX, + IRQ_TX, + IRQ_ERROR, + IRQ_OVERRUN, + IRQ_WAKEUP, + IRQ_PASSIVE, + IRQ_ARB, + IRQ_BUS, + IRQ_READY +} CanIrqType; + + +typedef enum { + MODE_RESET, + MODE_NORMAL, + MODE_SILENT, + MODE_TEST_GLOBAL, + MODE_TEST_LOCAL, + MODE_TEST_SILENT +} CanMode; + +typedef void (*can_irq_handler)(uint32_t id, CanIrqType type); + +void can_init (PinName rd, PinName td, FunctionalState abom); +void can_free (void); +int can_frequency(int hz); +void can_irq_init (uint32_t id, can_irq_handler handler); +void can_irq_free (void); +int can_write (CAN_Message, int cc); +int can_read (CAN_Message *msg, int handle); +int can_mode (CanMode mode); +int can_filter (uint32_t id, uint32_t mask, CANFormat format, int32_t handle); +void can_reset (void); +unsigned char can_rderror (void); +unsigned char can_tderror (void); +void can_monitor (int silent); +void can_callback (void); + +#ifdef __cplusplus +}; +#endif + +#endif // MBED_CAN_API_H + +