
前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。/ ^! R8 U1 B& g 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62, D9 `2 o! \' P% k q( k" h( W5 n2 _ BogoMIPS,F429跑Linux只有35.84 BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。3 v/ w" o/ _( V$ g; X- c ![]() 8 L* W2 T0 r: j$ V V: q+ p V$ T ) p5 L) e1 b' x) Z3 D# C/ A7 D ![]() U-Boot 2010.03 (Nov 26 2018 - 21:30:21) CPU : STM32F7 (Cortex-M7) Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz Board: STM32F750 Rev 1.0 DRAM: 64 MB2 e' w. B. V0 P1 }+ g9 g: ^9 _3 j In: serial/ r& {' p8 ]' j2 ^1 ]0 Y, Q: y8 @* d Out: serial Err: serial: D1 O% ]7 k# F$ q QSPI: 32 MB mapped at 0x90000000 Net: miiphy_register done.# s9 o& Y9 \/ Z% O9 `* x/ i eth hw init done. STM32_MAC Hit any key to stop autoboot: 0 Booting from QSPI# Q i' u. M0 n7 q5 U ## Booting kernel from Legacy Image at c0007fc0 ...7 J; W+ _) f, ?& ^- l8 i! X% g* I Image Name: Linux-4.2.01 P- u! r4 a1 u' z7 S Image Type: ARM Linux Multi-File Image (uncompressed)' q& S9 r$ N. f5 N/ V. l# M3 a& d- i Data Size: 7496295 Bytes = 7.1 MB Load Address: c0008000 Entry Point: c0008001 Contents: ? S) D& r7 v) v1 ~( [5 H' A Image 0: 7471388 Bytes = 7.1 MB Image 1: 24895 Bytes = 24.3 kB: d3 g; r$ o+ g7 q! B m6 B8 q4 I Verifying Checksum ... OK c$ q9 D! }4 r, h- Y' T ## Flattened Device Tree from multi component Image at C0007FC02 a& I) o Q5 F& t Booting using the fdt at 0xc0728128 Loading Multi-File Image ... OK* e5 X1 E& z7 u# U+ M5 s( P; W+ z OK6 _& [6 v7 o: L( Z WARNING: legacy format multi component image overwritten Loading Device Tree to c3ff6000, end c3fff13e ... OK Starting kernel ...Booting Linux on physical CPU 0x0 Linux version 4.2.0(gcc version 4.4.1 (Sourcery G++ Lite 20102 ^0 c* L- B; ], X8 l q1-189) ) #90 Tue Dec 4 03:32:33 EST 20188 G/ [3 V0 g% i% A- I4 A- f | CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=00000000 CPU: WBA data cache, WBA instruction cache3 M! `- [0 F2 u Machine model: EmCraft Systems STM32F7-SOM board Built 1 zonelists in Zone order, mobility grouping on. Total pages: 162561 |( m1 l6 B( N4 S Kernel command line: stm32_platform=stm32f7-disco console=ttyS0,115200 panic=10 ip=169.25$ y, u! v& `7 _. U: z5 S \( h 4.1.10:169.254.1.2:::stm32f7-disco:eth0:ff PID hash table entries: 256 (order: -2, 1024 bytes) Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)- W# ~$ W- G- M+ i; D" f7 _6 J Inode-cache hash table entries: 4096 (order: 2, 16384 bytes) Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init,' y0 ?4 g3 u- N/ [5 |. K% Q+ q6 j 111K bss, 9104K reserved, 0K cma-reserved) Virtual kernel memory layout: vector : 0x00000000 - 0x00001000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x00000000 - 0xffffffff (4095 MB)/ J! ~) G: W& s2 z6 u A4 H lowmem : 0xc0000000 - 0xc4000000 ( 64 MB) .text : 0xc0008000 - 0xc0312000 (3112 kB)# |% x! P( M) f0 D .init : 0xc0312000 - 0xc06fa000 (4000 kB); s* P `# e: V' D' D9 e .data : 0xc06fa000 - 0xc07277c0 ( 182 kB)( n3 U4 R0 J3 Y3 q8 p/ V* l4 ~& \ .bss : 0xc072811c - 0xc0743e84 ( 112 kB)/ e' y0 F% Q o! V0 ^+ e' i ! P9 ]8 ~" I" a9 Z! {( ?4 A NR_IRQS:16 nr_irqs:16 16 /interrupt-controller@40013c00: 24 External IRQs detected clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 27651335 8 ns ARM System timer initialized as clocksource /soc/timer@40000000: STM32 clockevent driver initialized (32 bits), Y* \7 L% w* |: m" v* Z: a sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns5 ~8 ?: a" }( P* Y' E& Q Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112)" Q8 e$ z L) b* Q+ | pid_max: default: 4096 minimum: 301% y; n. w' a' S1 } Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) devtmpfs: initialized& E/ @: U9 J5 V+ Y1 |6 D7 L clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275! v+ Q$ H6 ] n0 s 0000 ns/ H1 b7 u7 G7 j pinctrl core: initialized pinctrl subsystem7 \. S. R q8 ] NET: Registered protocol family 16 stm32-pinctrl pin-controller: nbanks = 11. W* O5 m( Q! F( U2 S# i2 u- Y stm32-pinctrl pin-controller: nfunctions = 20 stm32-pinctrl pin-controller: ngroups = 23 stm32-pinctrl pin-controller: GPIOA bank added.& @7 w) _, P( ?+ m. P stm32-pinctrl pin-controller: GPIOB bank added.( W E/ U2 {( _9 @0 R9 D2 U, {9 P stm32-pinctrl pin-controller: GPIOC bank added. stm32-pinctrl pin-controller: GPIOD bank added. stm32-pinctrl pin-controller: GPIOE bank added.; v! e/ x8 d+ y5 S0 a2 R# ? stm32-pinctrl pin-controller: GPIOF bank added.+ I2 u* b4 @ I stm32-pinctrl pin-controller: GPIOG bank added.4 H. e2 ?( z0 A4 L' G& l5 q stm32-pinctrl pin-controller: GPIOH bank added. ~. q K% K' A9 { stm32-pinctrl pin-controller: GPIOI bank added. stm32-pinctrl pin-controller: GPIOJ bank added.0 I/ @" M9 @, a/ b8 z+ K stm32-pinctrl pin-controller: GPIOK bank added. stm32-pinctrl pin-controller: Function[0 name:i2c_1, groups:1]+ X8 k+ e# q5 J9 A9 F/ B b# X stm32-pinctrl pin-controller: Function[1 name:i2c_2, groups:1]# C5 ]. U" q1 F4 d/ a* O5 r2 u stm32-pinctrl pin-controller: Function[2 name:i2c_3, groups:1]$ v7 w, B0 Y& M& y# N stm32-pinctrl pin-controller: Function[3 name:mac, groups:2] stm32-pinctrl pin-controller: Function[4 name:sdio, groups:1] stm32-pinctrl pin-controller: Function[5 name:spi_2, groups:1]! C) o3 N" c- z5 q" h stm32-pinctrl pin-controller: Function[6 name:spi_4, groups:1]: w( o) d5 E6 L7 G0 d" m) c7 j stm32-pinctrl pin-controller: Function[7 name:spi_5, groups:1] ]+ b# Y7 Q7 l+ g; L- E stm32-pinctrl pin-controller: Function[8 name:usart1, groups:1] stm32-pinctrl pin-controller: Function[9 name:usart6, groups:1] stm32-pinctrl pin-controller: Function[10 name:usart7, groups:1] stm32-pinctrl pin-controller: Function[11 name:usb_fs, groups:1]( C; ^/ ~+ f, h. q stm32-pinctrl pin-controller: Function[12 name:usb_hs, groups:1]* m. z: k+ t5 k7 I# ] stm32-pinctrl pin-controller: Function[13 name:can_1, groups:1]9 G, _- [ B, a9 k stm32-pinctrl pin-controller: Function[14 name:adc1_in0_pin, groups:1] stm32-pinctrl pin-controller: Function[15 name:dac_out2_pin, groups:1], ` ^# i' l K! Z$ b" g8 w) r stm32-pinctrl pin-controller: Function[16 name:ltdc, groups:1] stm32-pinctrl pin-controller: Function[17 name:sai_2, groups:1] stm32-pinctrl pin-controller: Function[18 name:i2c_4, groups:1] stm32-pinctrl pin-controller: Function[19 name:gpio, groups:3]7 i+ H3 _3 Y# e stm32-dma 40026000.dma: STM32 DMA driver registered stm32-dma 40026400.dma: STM32 DMA driver registered2 H( \) d* ]3 O3 A6 d3 S& z SCSI subsystem initialized% [) x% }7 m1 b- D usbcore: registered new interface driver usbfs usbcore: registered new interface driver hub usbcore: registered new device driver usb soc:phy_hs supply vcc not found, using dummy regulator soc:phy_fs supply vcc not found, using dummy regulator pps_core: LinuxPPS API ver. 1 registered pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it># D( b# ?% h- P* i( E; t" n PTP clock support registered2 k, `7 L. V+ ?( R Advanced Linux Sound Architecture Driver Initialized.2 L( E" i6 M! I2 a+ c) O Bluetooth: Core ver 2.20, f5 e- w5 m% J7 q' i! b NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized9 o' W! _- ]; M* ^4 j7 ? Bluetooth: HCI socket layer initialized Bluetooth: L2CAP socket layer initialized; q5 G2 @& c2 L$ {! E S Bluetooth: SCO socket layer initialized3 G( B3 z, p9 }. E& V clocksource: Switched to clocksource arm_system_timer NET: Registered protocol family 2 TCP established hash table entries: 1024 (order: 0, 4096 bytes) TCP bind hash table entries: 1024 (order: 0, 4096 bytes) TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 0, 4096 bytes)3 o3 n! T. `& m2 z UDP-Lite hash table entries: 256 (order: 0, 4096 bytes)( T0 A* o/ G' w) i/ U/ t/ Z NET: Registered protocol family 1) d- x4 p$ n$ \ }5 I RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. RPC: Registered tcp transport module. RPC: Registered tcp NFSv4.1 backchannel transport module. Power Management for STM32 futex hash table entries: 16 (order: -5, 192 bytes) jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc. fuse init (API version 7.23)! Q6 I3 N- g7 a* m4 r6 F/ E% K Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250) io scheduler noop registered io scheduler cfq registered (default) stm32-pinctrl pin-controller: maps: function gpio group pwms num 22 s1 J3 P, ?# }/ t, u9 K stm32-pwm pwm0: basing on TIM3.1(x16)6 P- b8 `! S6 h7 {5 o% Z0 g stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29+ g+ L6 J( \7 z stm32_lcdfb 40016800.ltdc: fb0: fb device registered successfully0 ]9 f/ F; S* G& H STM32 USART driver initialized% G8 x. g: F1 W7 M( n R stm32-pinctrl pin-controller: maps: function usart1 group usart1-0 num 3- J7 I! h; ~9 n0 x7 t8 ^( ?" R! c2 Z% O; g 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 34, base_baud = 6750000) is a stm32-usar t console [ttyS0] enabled stm32-pinctrl pin-controller: maps: function usart6 group usart6-0 num 3! |( O2 l2 d8 L# ]- C 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar t$ y' [8 V+ ]% K/ T. F, I! v nbd: registered device at major 43+ o* q/ X; k7 E, O9 N stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 2, }+ q6 ?, x1 T1 ]" y- l, Y8 G1 C, X* m stm32_dac 40007400.dac: dac1: no timer assigned, DMA functionality is not available stm32_dac 40007400.dac: created 1 character devices with MAJOR 248 2 ofpart partitions found on MTD device physmap-stm-flash.0 Creating 2 MTD partitions on "physmap-stm-flash.0":" R3 V' |, N, v: l) \ 0x000000000000-0x000000020000 : "stm_flash_uboot"$ Q$ ~9 T0 ?5 E9 k9 M 0x000000040000-0x000000100000 : "stm_flash_unused"2 {: T3 Y" X" p! w0 U stm32-pinctrl pin-controller: maps: function spi_5 group spi_5-0 num 4 stm32-spi 40015000.spi: SPI Controller 4 at 40015000,irq=38,hz=108000000/ F5 x7 h( Q) _) `2 V. X3 z" ~" H CAN device driver interface+ s% O" ?( D. N stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 32 n9 B: f: v% D) j8 b3 z stm32-can 40006400.can: device registered (reg=40006400, irq=31)' P6 q* o# f, }) u {) G* \ stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10 stmmac - user ID: 0x10, Synopsys ID: 0x35/ P. _$ E' F! B' s8 m- x Ring mode enabled# Y/ ~ g# o/ q DMA HW capability register supported3 Z* m& Y( ^7 p- i) S6 g Enhanced/Alternate descriptors Enabled extended descriptors2 z% q8 q7 K* R$ I! e, V% \& T RX Checksum Offload Engine supported (type 2)9 B9 k% p% H& I, [4 j3 P TX Checksum insertion supported Wake-Up On Lan supported- L7 T! n/ f* T9 {, X9 K Enable RX Mitigation via HW Watchdog Timer) D+ d7 K+ A8 y: S6 ?3 q/ y& [ stm32-dwmac 40028000.ethernet eth0: No MDIO subnode found libphy: stmmac: probed! i L3 B7 T' ]' q eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active PPP generic driver version 2.4.2+ G% Z$ |4 r4 H9 y' ` PPP BSD Compression module registered" L0 K; o+ T* z. E% W& q PPP Deflate Compression module registered usbcore: registered new interface driver rt2800usb5 l7 J# v: j& T stm32-pinctrl pin-controller: maps: function usb_hs group usb_hs-0 num 30 i" h) h" |- z" E, O, j' c. P6 S dwc2 40040000.usb: DWC OTG Controller dwc2 40040000.usb: new USB bus registered, assigned bus number 1 dwc2 40040000.usb: irq 56, io mem 0x00000000 usb usb1: New USB device found, idVendor=1d6b, idProduct=0002/ n& _2 J% }& P# \. \* g& u usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: DWC OTG Controller7 v4 M) f5 r" j k5 n usb usb1: Manufacturer: Linux 4.2.0 dwc2_hsotg usb usb1: SerialNumber: 40040000.usb hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected+ ?2 F% K* o' r/ O! T% X! ^ stm32-pinctrl pin-controller: maps: function usb_fs group usb_fs-0 num 33 f8 d: e# g6 p F2 o 50000000.usb supply vusb_d not found, using dummy regulator+ P8 D! [. S' z5 n9 q) F* _4 [ 50000000.usb supply vusb_a not found, using dummy regulator dwc2 50000000.usb: EPs: 6, dedicated fifos, 512 entries in SPRAM# P2 V4 }' c# x3 e dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b5 ^4 F+ G. n1 o" k3 o: @- ^ dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000 dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0 dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e04 _ c) j+ D$ N; z dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x00000100. p m, k6 b/ }! {* a! t dwc2 50000000.usb: DPTx[3] FSize=512, StAddr=0x00000800 dwc2 50000000.usb: DPTx[4] FSize=512, StAddr=0x00000a00 dwc2 50000000.usb: DPTx[5] FSize=512, StAddr=0x00000c00 dwc2 50000000.usb: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb) Z5 g) l5 S+ i4 C4 u3 x( q0 m; j dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb/ J* K- [4 V( @* f9 F2 _: L dwc2 50000000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb' Q. R4 I3 ]) |' P) V" G8 y dwc2 50000000.usb: ep3-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb! n* J+ Z! s4 e0 L dwc2 50000000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb5 T; e; p) u. \% A/ H; y' m dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb1 `% e- U! O6 @) x+ d) z dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b8 usbcore: registered new interface driver cdc_acm4 G4 F9 ]$ d# M+ r- Q cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters% N! W. \, c* Q+ [& z& M/ F usbcore: registered new interface driver uas. u2 ~5 M( \8 `; ` usbcore: registered new interface driver usb-storage g_serial gadget: Gadget Serial v2.48 R- W' u$ a& m! b0 X {6 W g_serial gadget: g_serial ready: E' p2 a; p! i% _; @# P dwc2 50000000.usb: bound driver g_serial i2c /dev entries driver stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 3 bmp085 3-0077: Successfully initialized bmp085! k+ F2 [2 {; C+ P1 ^% ^% k stm32f7-i2c 40006000.i2c: I2C Controller i2c-3 at 40006000,irq=581 o+ S3 F0 `9 ? Driver for 1-wire Dallas network protocol. usbcore: registered new interface driver btusb stm32-pinctrl pin-controller: maps: function sdio group sdio-0 num 7 mmci-pl18x 40012c00.sdi: Got CD GPIO mmci-pl18x 40012c00.sdi: mmc0: PL180 manf 80 rev4 at 0x40012c00 irq 37,0 (pio)/ X! ]) J8 p" I1 ~+ i( I stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 3 - was already request4 |" y/ Y2 g6 i% _* r+ _ x% L ed mmci-pl18x 40012c00.sdi: DMA channels RX dma1chan3, TX dma1chan3# X6 J6 \! _, S1 ^& Y stm32_gpio_to_irq: Event line 3 now points to fire interrupts from bank G stm32-pinctrl pin-controller: maps: function gpio group outs num 2 hidraw: raw HID events driver (C) Jiri Kosina usbcore: registered new interface driver usbhid usbhid: USB HID core driver stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 2# {0 o( t, j* B5 f/ Y3 ` e7 Q8 m stm32f4-adc 40012000.adc: registered stm32-pinctrl pin-controller: maps: function sai_2 group sai_2-0 num 5* m& z. T H0 ~0 E% @7 ~1 x9 z% N stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 4 - was already request ed stm32-asoc-card sound: failed to find codec platform device+ R! p- Z' S7 v! ~% N0 a2 Y6 [ stm32-asoc-card: probe of sound failed with error -22 NET: Registered protocol family 17 can: controller area network core (rev 20120528 abi 9)0 C% Z2 `; P- W! L# J NET: Registered protocol family 298 F% F2 K# }" @4 R! @ can: raw protocol (rev 20120528) can: broadcast manager protocol (rev 20120528 t) can: netlink gateway (rev 20130117) max_hops=1$ C. Q s& f1 J* m Bluetooth: RFCOMM TTY layer initialized Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11. J0 r2 Q! H& L/ _, D6 U hctosys: unable to open rtc device (rtc0) vmmc: disabling" K% [& n2 \( Z+ g% o ALSA device list: No soundcards found. Freeing unused kernel memory: 4000K (c0312000 - c06fa000) init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST)( k3 [9 k: N& ~# h / # amixer: Mixer attach default error: No such file or directory1 \$ g% d0 V3 ] v! O# R stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx / # free total used free shared buffers cached l! Z6 z/ k" x0 u; d! p: ~ Mem: 60432 8140 52292 0 0 4792" ^; [+ \" {! t" W, x' _ -/+ buffers/cache: 3348 57084# G: i5 x. v; v3 f3 R y9 \ / #: Z. f/ A% O, \0 V % U1 G2 S% H$ i, i0 a * c: z1 |; O, E |
STM32硬件结构学习
STM32中BOOT的作用
【STM32F769I-DISC1】开发板刷入Micropython并完成点灯、读取内部温度测试
【STM32F769I-DISC1】测评01:创建STM32cube IDE 工程,点个灯
【STM32F769】创建deepseek本地服务,并实现http请求
汇编浮点库qfplib移植STM32F769I-DISCO开发板与硬件浮点运算性能测试对比
coremark移植到STM32F769I-DISCO开发板的两种方法
【GUI板免费申请活动】【圣诞GUI】使用F746-DISO基于TouchGFX的圣诞树
刘氓兔的杂谈【001】-片上USB 高速PHY
【合集】STM32F7教程、资料大集合