STMCU小助手
发布时间:2021-12-14 10:42
|
前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。- g/ F9 z1 f% P5 X2 a 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI) ~1 z7 [+ y' g% j0 C BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62; L- l( A4 Z) |5 l/ H" i* @! J/ ~; D BogoMIPS,F429跑Linux只有35.84+ D1 F2 T( Y" T/ m BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。! ]) c9 S ?- J5 U 0 Q; |0 Q# X1 Z
, Z2 k t& h; G3 Z' Q
! {! g) P6 \7 i9 ] z: l- W U-Boot 2010.03 (Nov 26 2018 - 21:30:21) : l1 ^2 K4 b+ f" ^" L9 ]& q* e* f2 E$ v: h CPU : STM32F7 (Cortex-M7) Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz Board: STM32F750 Rev 1.0$ }7 c7 R- v( d) `( x2 u DRAM: 64 MB In: serial Out: serial Err: serial QSPI: 32 MB mapped at 0x90000000; o' N! ]7 k$ ] Net: miiphy_register done.. ~2 U) T0 s% N; F7 N eth hw init done.% ^. P: y) d/ e% C, J STM32_MAC6 G( d( K# B+ U3 S: z Hit any key to stop autoboot: 0 Booting from QSPI ## Booting kernel from Legacy Image at c0007fc0 ... Image Name: Linux-4.2.0% l! E: B3 V. H* C @0 f6 n/ {9 K4 ?$ ] Image Type: ARM Linux Multi-File Image (uncompressed) Data Size: 7496295 Bytes = 7.1 MB! d, H- S! A' \; ~; s. r Load Address: c0008000 Entry Point: c0008001 Contents:: L R! J. b" \/ E4 G! p! T. _: C+ N Image 0: 7471388 Bytes = 7.1 MB3 P* U; d$ m- F; C( j: y Image 1: 24895 Bytes = 24.3 kB- s' A! w% _5 {7 ` Verifying Checksum ... OK! a. M: X0 R1 y6 p' G ## Flattened Device Tree from multi component Image at C0007FC0. O( D) U9 W/ \3 }) C Booting using the fdt at 0xc07281280 v7 v* _1 |7 T Loading Multi-File Image ... OK OK5 u" M& y G: c& `) `0 a, {. \9 S WARNING: legacy format multi component image overwritten Loading Device Tree to c3ff6000, end c3fff13e ... OK Starting kernel ...Booting Linux on physical CPU 0x06 R: ?7 g U5 X3 i7 } Linux version 4.2.0(gcc version 4.4.1 (Sourcery G++ Lite 2010 q1-189) ) #90 Tue Dec 4 03:32:33 EST 20188 t7 A3 Y" u- y( h) g3 O2 J. M0 f CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=00000000 CPU: WBA data cache, WBA instruction cache Machine model: EmCraft Systems STM32F7-SOM board Built 1 zonelists in Zone order, mobility grouping on. Total pages: 162565 X5 r+ L' a( A! ?, r S Kernel command line: stm32_platform=stm32f7-disco console=ttyS0,115200 panic=10 ip=169.25 4.1.10:169.254.1.2:::stm32f7-disco:eth0:ff/ @. ?" F) d3 W PID hash table entries: 256 (order: -2, 1024 bytes)! [" O6 f( L) j$ B7 } Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)) }( H- s1 M# W$ T/ J+ { Inode-cache hash table entries: 4096 (order: 2, 16384 bytes): h8 M+ z& R. ]) f' \$ D Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init,# _& D- t4 l. w2 V( ? 111K bss, 9104K reserved, 0K cma-reserved)& s2 ^$ R. I/ _$ o( y, d1 Z: J" Z Virtual kernel memory layout: vector : 0x00000000 - 0x00001000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB) vmalloc : 0x00000000 - 0xffffffff (4095 MB)7 w4 r5 }) U/ A* M! D+ d, v/ i. K lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)/ R! w; H! ^5 C% m) J+ Q& i .text : 0xc0008000 - 0xc0312000 (3112 kB) .init : 0xc0312000 - 0xc06fa000 (4000 kB)( p* a$ |. Z. ^/ L .data : 0xc06fa000 - 0xc07277c0 ( 182 kB) .bss : 0xc072811c - 0xc0743e84 ( 112 kB)# T5 _( h0 M( j9 @ 9 D5 p" P9 j: m NR_IRQS:16 nr_irqs:16 16) f5 H2 `/ O4 d: v4 z0 } /interrupt-controller@40013c00: 24 External IRQs detected$ A# w7 ]) T, c6 A5 J clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 27651335: X' Y: P" @8 G 8 ns ARM System timer initialized as clocksource /soc/timer@40000000: STM32 clockevent driver initialized (32 bits)- i$ k; u" q/ M$ @$ C* _. l sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112); E% V2 T9 \# a: Z pid_max: default: 4096 minimum: 301 Mount-cache hash table entries: 1024 (order: 0, 4096 bytes) Mountpoint-cache hash table entries: 1024 (order: 0, 4096 bytes) devtmpfs: initialized clocksource: jiffies: mask: 0xffffffff max_cycles: 0xffffffff, max_idle_ns: 1911260446275 0000 ns pinctrl core: initialized pinctrl subsystem NET: Registered protocol family 16 stm32-pinctrl pin-controller: nbanks = 11 stm32-pinctrl pin-controller: nfunctions = 20 stm32-pinctrl pin-controller: ngroups = 239 M8 z7 d! ?/ G8 z stm32-pinctrl pin-controller: GPIOA bank added. stm32-pinctrl pin-controller: GPIOB bank added. stm32-pinctrl pin-controller: GPIOC bank added.# Z; e. d# j& t3 _0 J) s8 x stm32-pinctrl pin-controller: GPIOD bank added. stm32-pinctrl pin-controller: GPIOE bank added., U$ O. x% ~2 J, p& q8 N6 I4 n/ B! W; k stm32-pinctrl pin-controller: GPIOF bank added. stm32-pinctrl pin-controller: GPIOG bank added.; f7 V$ s2 z/ P stm32-pinctrl pin-controller: GPIOH bank added. stm32-pinctrl pin-controller: GPIOI bank added.* f' z- |- z0 P6 c* _5 A stm32-pinctrl pin-controller: GPIOJ bank added. stm32-pinctrl pin-controller: GPIOK bank added.9 ^1 V, i4 r# r Y- w1 x stm32-pinctrl pin-controller: Function[0 name:i2c_1, groups:1]! u" d* p5 n0 `# f) q" S9 U stm32-pinctrl pin-controller: Function[1 name:i2c_2, groups:1]; H, c l7 z: W2 X; w2 N4 T stm32-pinctrl pin-controller: Function[2 name:i2c_3, groups:1] b+ b, ~( q% c0 m% I3 [ stm32-pinctrl pin-controller: Function[3 name:mac, groups:2] stm32-pinctrl pin-controller: Function[4 name:sdio, groups:1]: G+ j4 F E$ J7 ~: p; V, J stm32-pinctrl pin-controller: Function[5 name:spi_2, groups:1]5 m! V, |& K( S8 K6 ^# i+ }4 q stm32-pinctrl pin-controller: Function[6 name:spi_4, groups:1]' l1 J* u1 e' p% A" N stm32-pinctrl pin-controller: Function[7 name:spi_5, groups:1] stm32-pinctrl pin-controller: Function[8 name:usart1, groups:1]2 m O# o1 O( L R stm32-pinctrl pin-controller: Function[9 name:usart6, groups:1]# O5 b0 L, w8 ] stm32-pinctrl pin-controller: Function[10 name:usart7, groups:1]1 a0 B ^. C+ j# Q+ h stm32-pinctrl pin-controller: Function[11 name:usb_fs, groups:1] stm32-pinctrl pin-controller: Function[12 name:usb_hs, groups:1] stm32-pinctrl pin-controller: Function[13 name:can_1, groups:1] stm32-pinctrl pin-controller: Function[14 name:adc1_in0_pin, groups:1]; ?. d: r2 r" B$ @* e1 Q0 d stm32-pinctrl pin-controller: Function[15 name:dac_out2_pin, groups:1] stm32-pinctrl pin-controller: Function[16 name:ltdc, groups:1], O$ @# O* U j, x5 O' \! g- I+ N stm32-pinctrl pin-controller: Function[17 name:sai_2, groups:1]+ P& a# Z" M, P! f& H stm32-pinctrl pin-controller: Function[18 name:i2c_4, groups:1] stm32-pinctrl pin-controller: Function[19 name:gpio, groups:3]+ `( \; y, T$ J# w6 Q7 E- [ stm32-dma 40026000.dma: STM32 DMA driver registered8 n; D y1 Z7 m3 N f$ J: c# G stm32-dma 40026400.dma: STM32 DMA driver registered( y0 Z+ ^3 W3 \$ V* X SCSI subsystem initialized usbcore: registered new interface driver usbfs* {- M4 l3 J8 L5 a9 M' o4 R usbcore: registered new interface driver hub usbcore: registered new device driver usb6 g: I$ `, f ^$ | soc:phy_hs supply vcc not found, using dummy regulator soc:phy_fs supply vcc not found, using dummy regulator; h: ` x+ ~9 e# Q pps_core: LinuxPPS API ver. 1 registered# |4 ] @9 I( v+ W- t pps_core: Software ver. 5.3.6 - Copyright 2005-2007 Rodolfo Giometti <giometti@linux.it> PTP clock support registered7 S: e0 J: t E; j/ a- i Advanced Linux Sound Architecture Driver Initialized.; _( L& D& w. c( L Bluetooth: Core ver 2.20 NET: Registered protocol family 310 P$ e8 J1 k8 I& A2 F' G1 }6 } Bluetooth: HCI device and connection manager initialized5 ?$ l& Z8 }/ V5 l! F+ [ Bluetooth: HCI socket layer initialized1 g2 s2 f/ B1 }& j3 {8 V, k: _, q Bluetooth: L2CAP socket layer initialized Bluetooth: SCO socket layer initialized4 d. W+ R/ J: j, s% Z+ R clocksource: Switched to clocksource arm_system_timer4 q' C9 l _: y NET: Registered protocol family 2, e: M* T% q, b, E. [$ g TCP established hash table entries: 1024 (order: 0, 4096 bytes)4 X2 y/ p0 l6 N8 ]! g ?+ O; C 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) UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1 RPC: Registered named UNIX socket transport module. RPC: Registered udp transport module. t" O. x! Z1 a; V RPC: Registered tcp transport module., X) k' J, u) G. K RPC: Registered tcp NFSv4.1 backchannel transport module. Power Management for STM321 W0 O5 v6 J E* I; ? N futex hash table entries: 16 (order: -5, 192 bytes)! j7 ^4 s' C7 E jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc.9 J! L1 S, N1 \1 c+ B; q fuse init (API version 7.23)9 H+ h/ j! q- s: a Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)& g) T4 k0 P+ [$ T* \, T io scheduler noop registered io scheduler cfq registered (default)& q7 F# @' Q) h4 O$ T stm32-pinctrl pin-controller: maps: function gpio group pwms num 2& l8 p$ n+ r; V1 s8 I stm32-pwm pwm0: basing on TIM3.1(x16)" N- E8 u- H+ Q, [5 n" K) q1 f stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29 stm32_lcdfb 40016800.ltdc: fb0: fb device registered successfully STM32 USART driver initialized c2 S2 O Z3 e4 N) ? stm32-pinctrl pin-controller: maps: function usart1 group usart1-0 num 31 Y. t( ~) H1 Z) O* I 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 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar t0 [8 M' m9 w, N7 ~3 h& Q, B nbd: registered device at major 43 stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 21 ]0 O( @6 ~7 T- H6 K% i$ _: J 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": 0x000000000000-0x000000020000 : "stm_flash_uboot"% i W% N: B& b* d" f& u% W) T: b 0x000000040000-0x000000100000 : "stm_flash_unused"- R+ n1 U, j5 S/ i; F! K 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 CAN device driver interface' a9 S6 I$ \" D0 T0 y# H. O stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 3 stm32-can 40006400.can: device registered (reg=40006400, irq=31) stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10) J) M( U1 z7 H! `/ b0 `& D- J stmmac - user ID: 0x10, Synopsys ID: 0x350 C& P# b1 f6 J9 V Ring mode enabled DMA HW capability register supported Enhanced/Alternate descriptors# m9 A$ ?6 R+ } Enabled extended descriptors RX Checksum Offload Engine supported (type 2)+ k" k- n1 t5 r! a: ~ TX Checksum insertion supported' R9 D' l4 Y3 M% H8 x( Q. R Wake-Up On Lan supported! s* y' u5 `5 S Enable RX Mitigation via HW Watchdog Timer- f+ l8 Z0 j+ v: r* R& I% s8 x, m" A stm32-dwmac 40028000.ethernet eth0: No MDIO subnode found libphy: stmmac: probed eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active3 [' x6 k! G) c PPP generic driver version 2.4.2 PPP BSD Compression module registered PPP Deflate Compression module registered usbcore: registered new interface driver rt2800usb. W3 I" d, Y: e: C) G stm32-pinctrl pin-controller: maps: function usb_hs group usb_hs-0 num 3) ? B% J: z# J dwc2 40040000.usb: DWC OTG Controller# f7 [( H4 ~( S0 \/ P/ \# z2 l dwc2 40040000.usb: new USB bus registered, assigned bus number 1 dwc2 40040000.usb: irq 56, io mem 0x000000007 J' u0 v; y2 S usb usb1: New USB device found, idVendor=1d6b, idProduct=0002 usb usb1: New USB device strings: Mfr=3, Product=2, SerialNumber=1 usb usb1: Product: DWC OTG Controller usb usb1: Manufacturer: Linux 4.2.0 dwc2_hsotg) Q' @* V% @% ^2 T9 |3 e5 x! i usb usb1: SerialNumber: 40040000.usb5 u) e" w! \4 Z8 c! d# ^ hub 1-0:1.0: USB hub found hub 1-0:1.0: 1 port detected: M% e( h) J7 N+ {6 l3 H stm32-pinctrl pin-controller: maps: function usb_fs group usb_fs-0 num 3 50000000.usb supply vusb_d not found, using dummy regulator 50000000.usb supply vusb_a not found, using dummy regulator dwc2 50000000.usb: EPs: 6, dedicated fifos, 512 entries in SPRAM/ X8 g/ V8 @& v5 X! `+ J$ a6 k dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000 dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0) Q2 e9 `4 Q3 `1 J( `- e; u dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e0 dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x000001002 {$ T7 H* G" ~, C dwc2 50000000.usb: DPTx[3] FSize=512, StAddr=0x000008004 o3 `5 E' s4 ^; D! n$ H$ c: u# [ dwc2 50000000.usb: DPTx[4] FSize=512, StAddr=0x00000a00- }- ~7 {" u/ t5 H) t. y dwc2 50000000.usb: DPTx[5] FSize=512, StAddr=0x00000c00" o+ Q7 J& z6 D7 }1 ]; _* \# K dwc2 50000000.usb: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb4 R2 I* v: }. w4 X0 N8 e$ I dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb/ b% S" T, g) R7 {& a! {( r dwc2 50000000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb- Q; s7 b) O6 \6 R; A& \+ G0 {- L dwc2 50000000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep3-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb. L e2 v1 j l& [8 k dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb( K8 C8 p2 ?0 d dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb3 s' s- s, l6 p. l2 V# d! j1 k$ I* M dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb& ^" |. X* D6 R- v/ [& } dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb( F! Y) B6 f* g, t5 J( u0 l dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b85 d6 V; x' J3 X+ X* }; x usbcore: registered new interface driver cdc_acm cdc_acm: USB Abstract Control Model driver for USB modems and ISDN adapters usbcore: registered new interface driver uas usbcore: registered new interface driver usb-storage L5 s8 K! H0 J- s0 f$ L1 A g_serial gadget: Gadget Serial v2.4 g_serial gadget: g_serial ready3 R. w/ Z( q. |" j' b [ dwc2 50000000.usb: bound driver g_serial2 {$ G" i E @, Z# ^9 C4 K i2c /dev entries driver stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 3 bmp085 3-0077: Successfully initialized bmp085!: L% {% K) i5 D4 ?) N. l stm32f7-i2c 40006000.i2c: I2C Controller i2c-3 at 40006000,irq=58 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), ~2 x g! e, ^$ x- p+ N& \ h stm32-dma 40026400.dma: stm32_dma_of_xlate: unable to get channel 3 - was already request ed mmci-pl18x 40012c00.sdi: DMA channels RX dma1chan3, TX dma1chan3+ d1 |; U/ Y# @, c) x stm32_gpio_to_irq: Event line 3 now points to fire interrupts from bank G& j8 W! q- }% K1 M- b. P+ K+ @ stm32-pinctrl pin-controller: maps: function gpio group outs num 21 ~+ E! j/ e" \- { W% Z hidraw: raw HID events driver (C) Jiri Kosina; Z* m! N8 k: j) j1 c+ ] usbcore: registered new interface driver usbhid( I: m0 G2 o& M J9 |8 Q9 l* J, H usbhid: USB HID core driver$ L* ?% g; m( N/ Q: o4 R. C stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 24 k: t: V- v# B stm32f4-adc 40012000.adc: registered' z# j" d- ?8 X stm32-pinctrl pin-controller: maps: function sai_2 group sai_2-0 num 5 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 stm32-asoc-card: probe of sound failed with error -22 NET: Registered protocol family 17' ^- I' U6 K. _ can: controller area network core (rev 20120528 abi 9) NET: Registered protocol family 29. H7 M, h) T4 u( Y% b7 K' n can: raw protocol (rev 20120528)9 P4 H! f# T! r- v, O _ can: broadcast manager protocol (rev 20120528 t) can: netlink gateway (rev 20130117) max_hops=1' [( _- C5 w" B+ E9 B Bluetooth: RFCOMM TTY layer initialized* o& Q# |- r+ I8 _ Bluetooth: RFCOMM socket layer initialized Bluetooth: RFCOMM ver 1.11 hctosys: unable to open rtc device (rtc0)8 s& n% }+ E+ E! u: ? vmmc: disabling ALSA device list: No soundcards found. Freeing unused kernel memory: 4000K (c0312000 - c06fa000). t/ K& I6 {- Q$ G o. [ init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST)4 J. O# x& O6 |7 A: v / # amixer: Mixer attach default error: No such file or directory7 m. S1 c2 P2 A1 M0 [! W" l stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx# Z9 m" C6 \8 M C1 ~& C8 n" N" B% M / # free3 |% }7 {; P7 ^; e+ V' g# N total used free shared buffers cached Mem: 60432 8140 52292 0 0 4792 -/+ buffers/cache: 3348 57084* v& u/ [9 _( {% w9 S8 N7 o / ## S1 Y/ P* w& M- O! H7 y % m' K( p. V) v; ~# z7 K: X, o |
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
2025国庆中秋活动体验报告2——TouchGFX的UI设计
微信公众号
手机版