Skip to content

Commit 9e03765

Browse files
authored
Merge pull request #3422 from szechyjs/disco_f303vc_can
Enable CAN on DISCO_F303VC
2 parents d1aa6ee + f941960 commit 9e03765

File tree

10 files changed

+41
-15
lines changed

10 files changed

+41
-15
lines changed

features/unsupported/tests/mbed/can/main.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ CAN can1(PD_0, PD_1);
2020
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
2121
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
2222
defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \
23-
defined(TARGET_NUCLEO_L432KC)
23+
defined(TARGET_NUCLEO_L432KC) || defined(TARGET_DISCO_F303VC)
2424
CAN can1(PA_11, PA_12);
2525
#elif defined(TARGET_DISCO_F469NI) ||defined(TARGET_DISCO_F746NG)
2626
CAN can1(PB_8, PB_9);
@@ -68,7 +68,7 @@ int main() {
6868
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
6969
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
7070
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
71-
!defined(TARGET_NUCLEO_L432KC))
71+
!defined(TARGET_NUCLEO_L432KC)) && !defined(TARGET_DISCO_F303VC)
7272
printf("loop()\n");
7373
if(can2.read(msg)) {
7474
printmsg("Rx message:", &msg);

features/unsupported/tests/mbed/can_interrupt/main.cpp

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ CAN can1(PD_0, PD_1);
2020
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
2121
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
2222
defined(TARGET_NUCLEO_F746ZG) || defined(TARGET_NUCLEO_L476RG) || \
23-
defined(TARGET_NUCLEO_L432KC)
23+
defined(TARGET_NUCLEO_L432KC) || defined(TARGET_DISCO_F303VC)
2424
CAN can1(PA_11, PA_12);
2525
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG)
2626
CAN can1(PB_8, PB_9);
@@ -63,7 +63,7 @@ void send() {
6363
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
6464
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
6565
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
66-
!defined(TARGET_NUCLEO_L432KC))
66+
!defined(TARGET_NUCLEO_L432KC) && !defined(TARGET_DISCO_F303VC))
6767
void read() {
6868
CANMessage msg;
6969
printf("rx()\n");
@@ -83,7 +83,7 @@ int main() {
8383
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
8484
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
8585
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
86-
!defined(TARGET_NUCLEO_L432KC))
86+
!defined(TARGET_NUCLEO_L432KC) && !defined(TARGET_DISCO_F303VC))
8787
can2.attach(&read);
8888
#endif
8989
while(1) {

features/unsupported/tests/mbed/can_loopback/main.cpp

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,8 @@ CAN can1(PA_11, PA_12);
2424
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) || \
2525
defined(TARGET_NUCLEO_F446ZE) || defined(TARGET_NUCLEO_F103RB) || \
2626
defined(TARGET_NUCLEO_F207ZG) || defined(TARGET_NUCLEO_F303ZE) || \
27-
defined(TARGET_DISCO_F769NI) || defined(TARGET_NUCLEO_F767ZI)
27+
defined(TARGET_DISCO_F769NI) || defined(TARGET_NUCLEO_F767ZI) || \
28+
defined(TARGET_DISCO_F303VC)
2829
CAN can1(PB_8, PB_9);
2930
#endif
3031

targets/TARGET_STM/TARGET_STM32F3/TARGET_DISCO_F303VC/PeripheralNames.h

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -81,6 +81,10 @@ typedef enum {
8181
PWM_17 = (int)TIM17_BASE
8282
} PWMName;
8383

84+
typedef enum {
85+
CAN_1 = (int)CAN_BASE
86+
} CANName;
87+
8488
#ifdef __cplusplus
8589
}
8690
#endif

targets/TARGET_STM/TARGET_STM32F3/TARGET_DISCO_F303VC/PeripheralPins.c

Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -342,3 +342,17 @@ const PinMap PinMap_SPI_SSEL[] = {
342342
{PD_15, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI2)},
343343
{NC, NC, 0}
344344
};
345+
346+
const PinMap PinMap_CAN_RD[] = {
347+
//{PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)}, //(pin used for usb)
348+
{PB_8, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)},
349+
{PD_0, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_CAN)},
350+
{NC, NC, 0}
351+
};
352+
353+
const PinMap PinMap_CAN_TD[] = {
354+
//{PA_12, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)}, //(pin used for usb)
355+
{PB_9, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)},
356+
{PD_1, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_CAN)},
357+
{NC, NC, 0}
358+
};

targets/TARGET_STM/TARGET_STM32F3/TARGET_DISCO_F303VC/device/stm32f303xc.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -840,7 +840,7 @@ typedef struct
840840
#define UART5 ((USART_TypeDef *) UART5_BASE)
841841
#define I2C1 ((I2C_TypeDef *) I2C1_BASE)
842842
#define I2C2 ((I2C_TypeDef *) I2C2_BASE)
843-
#define CAN ((CAN_TypeDef *) CAN_BASE)
843+
#define CAN1 ((CAN_TypeDef *) CAN_BASE)
844844
#define PWR ((PWR_TypeDef *) PWR_BASE)
845845
#define DAC ((DAC_TypeDef *) DAC_BASE)
846846
#define DAC1 ((DAC_TypeDef *) DAC1_BASE)

targets/TARGET_STM/TARGET_STM32F3/TARGET_DISCO_F303VC/objects.h

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -66,6 +66,11 @@ struct dac_s {
6666
uint32_t channel;
6767
};
6868

69+
struct can_s {
70+
CANName can;
71+
int index;
72+
};
73+
6974
#include "common_objects.h"
7075
#include "gpio_object.h"
7176

targets/targets.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1138,7 +1138,7 @@
11381138
"extra_labels": ["STM", "STM32F3", "STM32F303", "STM32F303VC"],
11391139
"macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
11401140
"supported_toolchains": ["GCC_ARM"],
1141-
"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"],
1141+
"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"],
11421142
"device_name": "STM32F303VC"
11431143
},
11441144
"DISCO_F334C8": {

tools/build_travis.py

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,7 @@
7676
{ "target": "ARCH_MAX", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
7777

7878
{ "target": "DISCO_F051R8", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
79+
{ "target": "DISCO_F303VC", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
7980
{ "target": "DISCO_F334C8", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
8081
{ "target": "DISCO_F401VC", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
8182
{ "target": "DISCO_F407VG", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },

tools/tests.py

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -117,8 +117,9 @@
117117
* NUCLEO_F746ZG: (RX=PA_11, TX=PA_12)
118118
* DISCO_F746NG: (RX=PB_8, TX=PB_9)
119119
* DISCO_L476VG: (RX=PA_11, TX=PA_12)
120-
* NUCLEO_L476RG: (RX=PA_11, TX=PA_12)
121-
* NUCLEO_L432KC: (RX=PA_11, TX=PA_12)
120+
* NUCLEO_L476RG: (RX=PA_11, TX=PA_12)
121+
* NUCLEO_L432KC: (RX=PA_11, TX=PA_12)
122+
* DISCO_F303VC: (RX=PA_11, TX=PA_12)
122123
123124
"""
124125
TESTS = [
@@ -323,7 +324,7 @@
323324
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
324325
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
325326
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
326-
"DISCO_F769NI", "NUCLEO_F767ZI"]
327+
"DISCO_F769NI", "NUCLEO_F767ZI", "DISCO_F303VC"]
327328
},
328329
{
329330
"id": "MBED_A28", "description": "CAN loopback test",
@@ -335,9 +336,9 @@
335336
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE",
336337
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
337338
"DISCO_F746NG", "DISCO_L476VG", "NUCLEO_L476RG", "NUCLEO_L432KC",
338-
"DISCO_F769NI", "NUCLEO_F767ZI"]
339+
"DISCO_F769NI", "NUCLEO_F767ZI", "DISCO_F303VC"]
339340
},
340-
{
341+
{
341342
"id": "MBED_A29", "description": "i2c_master_slave_asynch",
342343
"source_dir": join(TEST_DIR, "mbed", "i2c_master_slave_asynch"),
343344
"dependencies": [MBED_LIBRARIES, TEST_MBED_LIB],
@@ -605,7 +606,7 @@
605606
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
606607
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE", "DISCO_F469NI", "NUCLEO_F207ZG",
607608
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG",
608-
"NUCLEO_L476RG", "NUCLEO_L432KC"]
609+
"NUCLEO_L476RG", "NUCLEO_L432KC", "DISCO_F303VC"]
609610
},
610611
{
611612
"id": "MBED_30", "description": "CAN network test using interrupts",
@@ -615,7 +616,7 @@
615616
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
616617
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "NUCLEO_F446ZE", "DISCO_F469NI",
617618
"DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG", "DISCO_F746NG",
618-
"NUCLEO_L476RG", "NUCLEO_L432KC"]
619+
"NUCLEO_L476RG", "NUCLEO_L432KC", "DISCO_F303VC"]
619620
},
620621
{
621622
"id": "MBED_31", "description": "PWM LED test",

0 commit comments

Comments
 (0)