mirror of https://github.com/ARMmbed/mbed-os.git
Enable CAN on DISCO_F303VC
parent
ce9d2526f8
commit
f5f3dc8143
|
|
@ -20,7 +20,7 @@ CAN can1(PD_0, PD_1);
|
||||||
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
|
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
|
||||||
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
|
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
|
||||||
defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \
|
defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \
|
||||||
defined(TARGET_NUCLEO_L432KC)
|
defined(TARGET_NUCLEO_L432KC) || defined(TARGET_DISCO_F303VC)
|
||||||
CAN can1(PA_11, PA_12);
|
CAN can1(PA_11, PA_12);
|
||||||
#elif defined(TARGET_DISCO_F469NI) ||defined(TARGET_DISCO_F746NG)
|
#elif defined(TARGET_DISCO_F469NI) ||defined(TARGET_DISCO_F746NG)
|
||||||
CAN can1(PB_8, PB_9);
|
CAN can1(PB_8, PB_9);
|
||||||
|
|
@ -68,7 +68,7 @@ int main() {
|
||||||
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
|
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
|
||||||
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
|
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
|
||||||
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
|
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
|
||||||
!defined(TARGET_NUCLEO_L432KC))
|
!defined(TARGET_NUCLEO_L432KC)) && !defined(TARGET_DISCO_F303VC)
|
||||||
printf("loop()\n");
|
printf("loop()\n");
|
||||||
if(can2.read(msg)) {
|
if(can2.read(msg)) {
|
||||||
printmsg("Rx message:", &msg);
|
printmsg("Rx message:", &msg);
|
||||||
|
|
|
||||||
|
|
@ -20,7 +20,7 @@ CAN can1(PD_0, PD_1);
|
||||||
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
|
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
|
||||||
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
|
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
|
||||||
defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \
|
defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \
|
||||||
defined(TARGET_NUCLEO_L432KC)
|
defined(TARGET_NUCLEO_L432KC) || defined(TARGET_DISCO_F303VC)
|
||||||
CAN can1(PA_11, PA_12);
|
CAN can1(PA_11, PA_12);
|
||||||
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG)
|
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG)
|
||||||
CAN can1(PB_8, PB_9);
|
CAN can1(PB_8, PB_9);
|
||||||
|
|
@ -63,7 +63,7 @@ void send() {
|
||||||
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
|
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
|
||||||
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
|
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
|
||||||
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
|
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
|
||||||
!defined(TARGET_NUCLEO_L432KC))
|
!defined(TARGET_NUCLEO_L432KC) && !defined(TARGET_DISCO_F303VC))
|
||||||
void read() {
|
void read() {
|
||||||
CANMessage msg;
|
CANMessage msg;
|
||||||
printf("rx()\n");
|
printf("rx()\n");
|
||||||
|
|
@ -83,7 +83,7 @@ int main() {
|
||||||
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
|
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
|
||||||
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
|
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
|
||||||
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
|
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
|
||||||
!defined(TARGET_NUCLEO_L432KC))
|
!defined(TARGET_NUCLEO_L432KC) && !defined(TARGET_DISCO_F303VC))
|
||||||
can2.attach(&read);
|
can2.attach(&read);
|
||||||
#endif
|
#endif
|
||||||
while(1) {
|
while(1) {
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,8 @@ CAN can1(PA_11, PA_12);
|
||||||
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) || \
|
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) || \
|
||||||
defined(TARGET_NUCLEO_F446ZE) || defined(TARGET_NUCLEO_F103RB) || \
|
defined(TARGET_NUCLEO_F446ZE) || defined(TARGET_NUCLEO_F103RB) || \
|
||||||
defined(TARGET_NUCLEO_F207ZG) || defined(TARGET_NUCLEO_F303ZE) || \
|
defined(TARGET_NUCLEO_F207ZG) || defined(TARGET_NUCLEO_F303ZE) || \
|
||||||
defined(TARGET_DISCO_F769NI) || defined(TARGET_NUCLEO_F767ZI)
|
defined(TARGET_DISCO_F769NI) || defined(TARGET_NUCLEO_F767ZI) || \
|
||||||
|
defined(TARGET_DISCO_F303VC)
|
||||||
CAN can1(PB_8, PB_9);
|
CAN can1(PB_8, PB_9);
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -81,6 +81,10 @@ typedef enum {
|
||||||
PWM_17 = (int)TIM17_BASE
|
PWM_17 = (int)TIM17_BASE
|
||||||
} PWMName;
|
} PWMName;
|
||||||
|
|
||||||
|
typedef enum {
|
||||||
|
CAN_1 = (int)CAN_BASE
|
||||||
|
} CANName;
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -342,3 +342,13 @@ const PinMap PinMap_SPI_SSEL[] = {
|
||||||
{PD_15, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI2)},
|
{PD_15, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI2)},
|
||||||
{NC, NC, 0}
|
{NC, NC, 0}
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const PinMap PinMap_CAN_RD[] = {
|
||||||
|
{PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)},
|
||||||
|
{NC, NC, 0}
|
||||||
|
};
|
||||||
|
|
||||||
|
const PinMap PinMap_CAN_TD[] = {
|
||||||
|
{PA_12, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)},
|
||||||
|
{NC, NC, 0}
|
||||||
|
};
|
||||||
|
|
|
||||||
|
|
@ -840,7 +840,7 @@ typedef struct
|
||||||
#define UART5 ((USART_TypeDef *) UART5_BASE)
|
#define UART5 ((USART_TypeDef *) UART5_BASE)
|
||||||
#define I2C1 ((I2C_TypeDef *) I2C1_BASE)
|
#define I2C1 ((I2C_TypeDef *) I2C1_BASE)
|
||||||
#define I2C2 ((I2C_TypeDef *) I2C2_BASE)
|
#define I2C2 ((I2C_TypeDef *) I2C2_BASE)
|
||||||
#define CAN ((CAN_TypeDef *) CAN_BASE)
|
#define CAN1 ((CAN_TypeDef *) CAN_BASE)
|
||||||
#define PWR ((PWR_TypeDef *) PWR_BASE)
|
#define PWR ((PWR_TypeDef *) PWR_BASE)
|
||||||
#define DAC ((DAC_TypeDef *) DAC_BASE)
|
#define DAC ((DAC_TypeDef *) DAC_BASE)
|
||||||
#define DAC1 ((DAC_TypeDef *) DAC1_BASE)
|
#define DAC1 ((DAC_TypeDef *) DAC1_BASE)
|
||||||
|
|
|
||||||
|
|
@ -66,6 +66,11 @@ struct dac_s {
|
||||||
uint32_t channel;
|
uint32_t channel;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct can_s {
|
||||||
|
CANName can;
|
||||||
|
int index;
|
||||||
|
};
|
||||||
|
|
||||||
#include "common_objects.h"
|
#include "common_objects.h"
|
||||||
#include "gpio_object.h"
|
#include "gpio_object.h"
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -1125,7 +1125,7 @@
|
||||||
"extra_labels": ["STM", "STM32F3", "STM32F303", "STM32F303VC"],
|
"extra_labels": ["STM", "STM32F3", "STM32F303", "STM32F303VC"],
|
||||||
"macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
|
"macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
|
||||||
"supported_toolchains": ["GCC_ARM"],
|
"supported_toolchains": ["GCC_ARM"],
|
||||||
"device_has": ["ANALOGIN", "ANALOGOUT", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
"device_has": ["ANALOGIN", "ANALOGOUT", "CAN", "I2C", "I2CSLAVE", "I2C_ASYNCH", "INTERRUPTIN", "LOWPOWERTIMER", "PORTIN", "PORTINOUT", "PORTOUT", "PWMOUT", "RTC", "SERIAL", "SERIAL_FC", "SLEEP", "SPI", "SPISLAVE", "SPI_ASYNCH", "STDIO_MESSAGES"],
|
||||||
"device_name": "STM32F303VC"
|
"device_name": "STM32F303VC"
|
||||||
},
|
},
|
||||||
"DISCO_F334C8": {
|
"DISCO_F334C8": {
|
||||||
|
|
|
||||||
|
|
@ -119,6 +119,7 @@ Wiring:
|
||||||
* DISCO_L476VG: (RX=PA_11, TX=PA_12)
|
* DISCO_L476VG: (RX=PA_11, TX=PA_12)
|
||||||
* NUCLEO_L476RG: (RX=PA_11, TX=PA_12)
|
* NUCLEO_L476RG: (RX=PA_11, TX=PA_12)
|
||||||
* NUCLEO_L432KC: (RX=PA_11, TX=PA_12)
|
* NUCLEO_L432KC: (RX=PA_11, TX=PA_12)
|
||||||
|
* DISCO_F303VC: (RX=PA_11, TX=PA_12)
|
||||||
|
|
||||||
"""
|
"""
|
||||||
TESTS = [
|
TESTS = [
|
||||||
|
|
@ -323,7 +324,7 @@ TESTS = [
|
||||||
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
|
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
|
||||||
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
|
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
|
||||||
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
|
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
|
||||||
"DISCO_F769NI", "NUCLEO_F767ZI"]
|
"DISCO_F769NI", "NUCLEO_F767ZI", "DISCO_F303VC"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "MBED_A28", "description": "CAN loopback test",
|
"id": "MBED_A28", "description": "CAN loopback test",
|
||||||
|
|
@ -335,7 +336,7 @@ TESTS = [
|
||||||
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE",
|
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE",
|
||||||
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
|
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
|
||||||
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
|
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
|
||||||
"DISCO_F769NI", "NUCLEO_F767ZI"]
|
"DISCO_F769NI", "NUCLEO_F767ZI", "DISCO_F303VC"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "MBED_A29", "description": "i2c_master_slave_asynch",
|
"id": "MBED_A29", "description": "i2c_master_slave_asynch",
|
||||||
|
|
@ -605,7 +606,7 @@ TESTS = [
|
||||||
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
|
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
|
||||||
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE", "DISCO_F469NI", "NUCLEO_F207ZG",
|
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE", "DISCO_F469NI", "NUCLEO_F207ZG",
|
||||||
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG",
|
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG",
|
||||||
"NUCLEO_L476RG", "NUCLEO_L432KC"]
|
"NUCLEO_L476RG", "NUCLEO_L432KC", "DISCO_F303VC"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "MBED_30", "description": "CAN network test using interrupts",
|
"id": "MBED_30", "description": "CAN network test using interrupts",
|
||||||
|
|
@ -615,7 +616,7 @@ TESTS = [
|
||||||
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
|
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
|
||||||
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "NUCLEO_F446ZE", "DISCO_F469NI",
|
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "NUCLEO_F446ZE", "DISCO_F469NI",
|
||||||
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG",
|
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG",
|
||||||
"NUCLEO_L476RG", "NUCLEO_L432KC"]
|
"NUCLEO_L476RG", "NUCLEO_L432KC", "DISCO_F303VC"]
|
||||||
},
|
},
|
||||||
{
|
{
|
||||||
"id": "MBED_31", "description": "PWM LED test",
|
"id": "MBED_31", "description": "PWM LED test",
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue