Merge pull request #3422 from szechyjs/disco_f303vc_can

Enable CAN on DISCO_F303VC
pull/3451/head
Anna Bridge 2016-12-19 17:37:48 +00:00 committed by GitHub
commit 9e03765d04
10 changed files with 41 additions and 15 deletions

View File

@ -20,7 +20,7 @@ CAN can1(PD_0, PD_1);
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
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);
#elif defined(TARGET_DISCO_F469NI) ||defined(TARGET_DISCO_F746NG)
CAN can1(PB_8, PB_9);
@ -68,7 +68,7 @@ int main() {
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
!defined(TARGET_NUCLEO_L432KC))
!defined(TARGET_NUCLEO_L432KC)) && !defined(TARGET_DISCO_F303VC)
printf("loop()\n");
if(can2.read(msg)) {
printmsg("Rx message:", &msg);

View File

@ -20,7 +20,7 @@ CAN can1(PD_0, PD_1);
defined(TARGET_NUCLEO_F302R8) || defined(TARGET_NUCLEO_F446RE) || \
defined(TARGET_DISCO_F429ZI) || defined(TARGET_NUCLEO_F103RB) || \
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);
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG)
CAN can1(PB_8, PB_9);
@ -63,7 +63,7 @@ void send() {
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
!defined(TARGET_NUCLEO_L432KC))
!defined(TARGET_NUCLEO_L432KC) && !defined(TARGET_DISCO_F303VC))
void read() {
CANMessage msg;
printf("rx()\n");
@ -83,7 +83,7 @@ int main() {
!defined(TARGET_NUCLEO_F303RE) && !defined(TARGET_NUCLEO_F303K8) && \
!defined(TARGET_NUCLEO_F302R8) && !defined(TARGET_NUCLEO_F103RB) && \
!defined(TARGET_DISCO_L476VG) && !defined(TARGET_NUCLEO_L476RG) && \
!defined(TARGET_NUCLEO_L432KC))
!defined(TARGET_NUCLEO_L432KC) && !defined(TARGET_DISCO_F303VC))
can2.attach(&read);
#endif
while(1) {

View File

@ -24,7 +24,8 @@ CAN can1(PA_11, PA_12);
#elif defined(TARGET_DISCO_F469NI) || defined(TARGET_DISCO_F746NG) || \
defined(TARGET_NUCLEO_F446ZE) || defined(TARGET_NUCLEO_F103RB) || \
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);
#endif

View File

@ -81,6 +81,10 @@ typedef enum {
PWM_17 = (int)TIM17_BASE
} PWMName;
typedef enum {
CAN_1 = (int)CAN_BASE
} CANName;
#ifdef __cplusplus
}
#endif

View File

@ -342,3 +342,17 @@ const PinMap PinMap_SPI_SSEL[] = {
{PD_15, SPI_2, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_PULLUP, GPIO_AF6_SPI2)},
{NC, NC, 0}
};
const PinMap PinMap_CAN_RD[] = {
//{PA_11, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)}, //(pin used for usb)
{PB_8, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)},
{PD_0, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_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)}, //(pin used for usb)
{PB_9, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF9_CAN)},
{PD_1, CAN_1, STM_PIN_DATA(STM_MODE_AF_PP, GPIO_NOPULL, GPIO_AF7_CAN)},
{NC, NC, 0}
};

View File

@ -840,7 +840,7 @@ typedef struct
#define UART5 ((USART_TypeDef *) UART5_BASE)
#define I2C1 ((I2C_TypeDef *) I2C1_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 DAC ((DAC_TypeDef *) DAC_BASE)
#define DAC1 ((DAC_TypeDef *) DAC1_BASE)

View File

@ -66,6 +66,11 @@ struct dac_s {
uint32_t channel;
};
struct can_s {
CANName can;
int index;
};
#include "common_objects.h"
#include "gpio_object.h"

View File

@ -1138,7 +1138,7 @@
"extra_labels": ["STM", "STM32F3", "STM32F303", "STM32F303VC"],
"macros": ["RTC_LSI=1", "TRANSACTION_QUEUE_SIZE_SPI=2"],
"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"
},
"DISCO_F334C8": {

View File

@ -76,6 +76,7 @@ build_list = (
{ "target": "ARCH_MAX", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
{ "target": "DISCO_F051R8", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
{ "target": "DISCO_F303VC", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
{ "target": "DISCO_F334C8", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "fat"] },
{ "target": "DISCO_F401VC", "toolchains": "GCC_ARM", "libs": ["dsp", "fat"] },
{ "target": "DISCO_F407VG", "toolchains": "GCC_ARM", "libs": ["dsp", "rtos", "usb", "fat"] },

View File

@ -117,8 +117,9 @@ Wiring:
* NUCLEO_F746ZG: (RX=PA_11, TX=PA_12)
* DISCO_F746NG: (RX=PB_8, TX=PB_9)
* DISCO_L476VG: (RX=PA_11, TX=PA_12)
* NUCLEO_L476RG: (RX=PA_11, TX=PA_12)
* NUCLEO_L432KC: (RX=PA_11, TX=PA_12)
* NUCLEO_L476RG: (RX=PA_11, TX=PA_12)
* NUCLEO_L432KC: (RX=PA_11, TX=PA_12)
* DISCO_F303VC: (RX=PA_11, TX=PA_12)
"""
TESTS = [
@ -323,7 +324,7 @@ TESTS = [
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE",
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
"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",
@ -335,9 +336,9 @@ TESTS = [
"NUCLEO_F303RE", "NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F303ZE", "NUCLEO_F446RE","NUCLEO_F446ZE",
"DISCO_F469NI", "DISCO_F429ZI", "NUCLEO_F103RB", "NUCLEO_F746ZG",
"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",
"source_dir": join(TEST_DIR, "mbed", "i2c_master_slave_asynch"),
"dependencies": [MBED_LIBRARIES, TEST_MBED_LIB],
@ -605,7 +606,7 @@ TESTS = [
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE","NUCLEO_F446ZE", "DISCO_F469NI", "NUCLEO_F207ZG",
"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",
@ -615,7 +616,7 @@ TESTS = [
"NUCLEO_F072RB", "NUCLEO_F042K6", "NUCLEO_F334R8", "NUCLEO_F303RE",
"NUCLEO_F303K8", "NUCLEO_F302R8", "NUCLEO_F446RE", "NUCLEO_F446ZE", "DISCO_F469NI",
"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",