本帖最后由 Microp 于 2018-2-4 20:17 编辑
dcexpert 发表于 2018-2-2 21:50
贴个图,在把你的配置文件给大家分享一下,不然没法分析
不好意思,年底单位事情太多,顾不上自己的业余研究了,下面是我改的.h:
//#define MICROPY_HW_BOARD_NAME "F4DISC"
//#define MICROPY_HW_MCU_NAME "STM32F407"
#define MICROPY_HW_BOARD_NAME "STM32F4-512K"
#define MICROPY_HW_MCU_NAME "STM32F407VET6"
#define MICROPY_HW_HAS_SWITCH (1)
#define MICROPY_HW_HAS_FLASH (1)
#define MICROPY_HW_HAS_SDCARD (0)
#define MICROPY_HW_HAS_MMA7660 (0)
#define MICROPY_HW_HAS_LIS3DSH (0)
#define MICROPY_HW_HAS_LCD (0)
#define MICROPY_HW_ENABLE_RNG (1)
#define MICROPY_HW_ENABLE_RTC (1)
#define MICROPY_HW_ENABLE_TIMER (1)
#define MICROPY_HW_ENABLE_SERVO (0)
#define MICROPY_HW_ENABLE_DAC (1)
#define MICROPY_HW_ENABLE_CAN (1)
// HSE is 8MHz
#define MICROPY_HW_CLK_PLLM (8)
#define MICROPY_HW_CLK_PLLN (336)
#define MICROPY_HW_CLK_PLLP (RCC_PLLP_DIV2)
#define MICROPY_HW_CLK_PLLQ (7)
// UART config
//#if 0
#if 0
// A9 is used for USB VBUS detect, and A10 is used for USB_FS_ID.
// UART1 is also on PB6/7 but PB6 is tied to the Audio SCL line.
// Without board modifications, this makes UART1 unusable on this board.
#define MICROPY_HW_UART1_TX (pin_A9)
#define MICROPY_HW_UART1_RX (pin_A10)
#endif
#if 0
#define MICROPY_HW_UART2_TX (pin_D5)
#define MICROPY_HW_UART2_RX (pin_D6)
#endif
//#define MICROPY_HW_UART2_TX (pin_A2)
//#define MICROPY_HW_UART2_RX (pin_A3)
//#define MICROPY_HW_UART2_RTS (pin_A1)
//#define MICROPY_HW_UART2_CTS (pin_A0)
//#define MICROPY_HW_UART3_TX (pin_D8)
//#define MICROPY_HW_UART3_RX (pin_D9)
//#define MICROPY_HW_UART3_RTS (pin_D12)
//#define MICROPY_HW_UART3_CTS (pin_D11)
//#if MICROPY_HW_HAS_SWITCH == 0
//// NOTE: A0 also connects to the user switch. To use UART4 you should
//// set MICROPY_HW_HAS_SWITCH to 0, and also remove SB20 (on the back
//// of the board near the USER switch).
//#define MICROPY_HW_UART4_TX (pin_A0)
//#define MICROPY_HW_UART4_RX (pin_A1)
//#endif
//// NOTE: PC7 is connected to MCLK on the Audio chip. This is an input signal
//// so I think as long as you're not using the audio chip then it should
//// be fine to use as a UART pin.
//#define MICROPY_HW_UART6_TX (pin_C6)
//#define MICROPY_HW_UART6_RX (pin_C7)
// I2C busses
//#define MICROPY_HW_I2C1_SCL (pin_B6)
//#define MICROPY_HW_I2C1_SDA (pin_B7)
//#define MICROPY_HW_I2C2_SCL (pin_B10)
//#define MICROPY_HW_I2C2_SDA (pin_B11)
#define MICROPY_HW_I2C1_SCL (pin_B8)
#define MICROPY_HW_I2C1_SDA (pin_B9)
// SPI busses
//#define MICROPY_HW_SPI1_NSS (pin_A4)
//#define MICROPY_HW_SPI1_SCK (pin_A5)
//#define MICROPY_HW_SPI1_MISO (pin_A6)
//#define MICROPY_HW_SPI1_MOSI (pin_A7)
//#define MICROPY_HW_SPI2_NSS (pin_B12)
//#define MICROPY_HW_SPI2_SCK (pin_B13)
//#define MICROPY_HW_SPI2_MISO (pin_B14)
//#define MICROPY_HW_SPI2_MOSI (pin_B15)
#define MICROPY_HW_SPI2_SCK (pin_B10)
#define MICROPY_HW_SPI2_MISO (pin_C2)
#define MICROPY_HW_SPI2_MOSI (pin_C3)
// USRSW is pulled low. Pressing the button makes the input go high.
//#define MICROPY_HW_USRSW_PIN (pin_A0)
#define MICROPY_HW_USRSW_PIN (pin_E10)
#define MICROPY_HW_USRSW_PULL (GPIO_PULL)
#define MICROPY_HW_USRSW_EXTI_MODE (GPIO_MODE_IT_RISING)
//#define MICROPY_HW_USRSW_PRESSED (1)
#define MICROPY_HW_USRSW_PRESSED (0)
// LEDs
//#define MICROPY_HW_LED1 (pin_D14) // red
//#define MICROPY_HW_LED2 (pin_D12) // green
//#define MICROPY_HW_LED3 (pin_D13) // orange
//#define MICROPY_HW_LED4 (pin_D15) // blue
#define MICROPY_HW_LED1 (pin_E13) // red
#define MICROPY_HW_LED2 (pin_E14) // green
#define MICROPY_HW_LED3 (pin_E15) // orange
#define MICROPY_HW_LED_ON(pin) (mp_hal_pin_low(pin))
#define MICROPY_HW_LED_OFF(pin) (mp_hal_pin_high(pin))
// USB config
#define MICROPY_HW_USB_VBUS_DETECT_PIN (pin_A9)
#define MICROPY_HW_USB_OTG_ID_PIN (pin_A10)
下午我又查了一下开发板的原理,发现他的miniusb接口,ID脚悬空,VBUS经跳线帽接到5V了,之前对miniusb的认识不够,不知道这两个脚的含义,我猜想大概是这个的原因吧,我飞两根线再试试。