STMCU小助手
发布时间:2021-12-14 10:42
|
前段时间ST推出了Value Line的STM32F750和H750两个系列,看了一下选型表,F750有LQFP144封装,正好适合我的STM32 linux板子。 % S0 H6 O/ ?- F, n Y/ } 于是,双十一买了几片。同时,我对我的linux板做了小幅改版:将SPI Flash容量扩大到32MB并连接到F750的QSPI5 s3 ?3 P3 |+ {1 e. g BANK1,添加了CAN收发器和接口,增加了两个I2C外设(温湿度传感器和气压传感器)。板子做回来后先焊了一片,调试过程还算比较顺利,现在u-boot和Linux都工作起来了,下面是系统启动log,F750速度还是相当快的(427.62 BogoMIPS,F429跑Linux只有35.84 BogoMIPS),QSPI的加载速度也很给力。下一步我准备多测试几种STM32外设的Linux driver,emcraft现在的SDK比两三年前多了不少外设驱动,可以都试试看。3 E* M2 F2 w( f& b7 D5 K
. g& @( {/ a, n3 f" \4 j( E + M2 ?% s" D0 s! y
* P+ k/ F4 D5 @# h& Z U-Boot 2010.03 (Nov 26 2018 - 21:30:21) : ^. I8 x- D, }" t: m! U' R1 A. I CPU : STM32F7 (Cortex-M7) Freqs: SYSCLK=216MHz,HCLK=216MHz,PCLK1=54MHz,PCLK2=108MHz Board: STM32F750 Rev 1.0* B/ q& U5 H0 _/ b7 X0 I' _& Z {4 m DRAM: 64 MB In: serial3 v8 J/ R$ o3 { H; l Out: serial7 |9 k) M/ ~# G; n! f& S Err: serial QSPI: 32 MB mapped at 0x90000000' n" @# X; H. `; x6 p$ a Net: miiphy_register done. eth hw init done. STM32_MAC. h: Q9 L* H3 _6 _ Hit any key to stop autoboot: 0 Booting from QSPI9 k3 A% \( O/ x$ t) S* J ## Booting kernel from Legacy Image at c0007fc0 ... Image Name: Linux-4.2.0 Image Type: ARM Linux Multi-File Image (uncompressed): P6 c9 H9 L: q' z1 |' Q! ~) { Data Size: 7496295 Bytes = 7.1 MB9 r: D, Y* x" d! B8 P. a Load Address: c00080002 U+ i4 z+ s Y" P# r. V. ?, U Entry Point: c00080019 ^3 W V5 t8 s% I- @ Contents:9 h' I4 z$ }& N% P Image 0: 7471388 Bytes = 7.1 MB' b, i# j$ X1 Q8 a4 R7 O Image 1: 24895 Bytes = 24.3 kB Verifying Checksum ... OK ## Flattened Device Tree from multi component Image at C0007FC0 Booting using the fdt at 0xc0728128! R3 T8 z8 Q9 k- f$ |7 o$ w Loading Multi-File Image ... OK, J- S O, H# ]7 H1 v4 P# Y6 L! l OK# s+ J {' ?- G" K6 x WARNING: legacy format multi component image overwritten Loading Device Tree to c3ff6000, end c3fff13e ... OK Starting kernel ...Booting Linux on physical CPU 0x0& ?/ R" F4 }: B Linux version 4.2.0(gcc version 4.4.1 (Sourcery G++ Lite 2010 q1-189) ) #90 Tue Dec 4 03:32:33 EST 2018 CPU: ARMv7-M [410fc271] revision 1 (ARMv7M), cr=00000000* a6 s* ]' G2 Q CPU: WBA data cache, WBA instruction cache: O X* a6 y$ w Machine model: EmCraft Systems STM32F7-SOM board Built 1 zonelists in Zone order, mobility grouping on. Total pages: 16256 Y7 P+ D( K- w6 l$ n5 L 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:ff9 Q/ y* x. ]4 |8 c4 ~0 ^ PID hash table entries: 256 (order: -2, 1024 bytes)+ h4 {7 [9 X7 N6 b8 K q1 O Dentry cache hash table entries: 8192 (order: 3, 32768 bytes)$ l3 d; L4 G# |5 n9 I Inode-cache hash table entries: 4096 (order: 2, 16384 bytes)9 P4 a1 y. j; O% o% X2 l Memory: 56432K/65536K available (2523K kernel code, 181K rwdata, 588K rodata, 4000K init, 111K bss, 9104K reserved, 0K cma-reserved) z5 J1 `9 C' D' p, | Virtual kernel memory layout:% S" w6 T: p2 s% I7 W( _ vector : 0x00000000 - 0x00001000 ( 4 kB) fixmap : 0xffc00000 - 0xfff00000 (3072 kB)+ B+ _: A/ x8 e vmalloc : 0x00000000 - 0xffffffff (4095 MB)2 T7 S c) |: b& r( y" [: o lowmem : 0xc0000000 - 0xc4000000 ( 64 MB)( s: f+ R) S! t3 Q) t# o+ t1 } .text : 0xc0008000 - 0xc0312000 (3112 kB): E( ]- O) [2 p2 x. ^( m5 M .init : 0xc0312000 - 0xc06fa000 (4000 kB)+ @- u' z+ ^& j* n! o4 u0 @/ h .data : 0xc06fa000 - 0xc07277c0 ( 182 kB)5 o$ t/ F9 L9 F W .bss : 0xc072811c - 0xc0743e84 ( 112 kB), q; a) ]! m+ h% U D3 ^ NR_IRQS:16 nr_irqs:16 162 [1 D" y& P$ k. D9 p /interrupt-controller@40013c00: 24 External IRQs detected: ~, @/ S0 S0 _' h! W clocksource: arm_system_timer: mask: 0xffffff max_cycles: 0xffffff, max_idle_ns: 27651335 8 ns ARM System timer initialized as clocksource: S7 {7 D* G! ]+ j6 a9 L /soc/timer@40000000: STM32 clockevent driver initialized (32 bits)* W& A$ ^! E0 \1 w/ { sched_clock: 32 bits at 100 Hz, resolution 10000000ns, wraps every 21474836475000000ns7 l7 U% i% R' a) i& } Calibrating delay loop... 427.62 BogoMIPS (lpj=2138112) pid_max: default: 4096 minimum: 301* @& H" x! G( x. ]& t8 i/ { Mount-cache hash table entries: 1024 (order: 0, 4096 bytes)- |1 L! p3 {" O 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% q# `- J' W2 [2 d% P NET: Registered protocol family 16 stm32-pinctrl pin-controller: nbanks = 11 stm32-pinctrl pin-controller: nfunctions = 20; i! Y# a, w3 A# K& G9 u stm32-pinctrl pin-controller: ngroups = 23 stm32-pinctrl pin-controller: GPIOA bank added.6 [0 o1 b( Y3 E stm32-pinctrl pin-controller: GPIOB bank added.' K p; d; V4 @% y stm32-pinctrl pin-controller: GPIOC bank added. stm32-pinctrl pin-controller: GPIOD bank added.- z$ b: E7 |2 {0 g. A; Z stm32-pinctrl pin-controller: GPIOE bank added.# t8 z; ]5 R+ ^6 m' f7 s4 ]5 n stm32-pinctrl pin-controller: GPIOF bank added. stm32-pinctrl pin-controller: GPIOG bank added.3 s! N, g h7 w$ |% s; P stm32-pinctrl pin-controller: GPIOH bank added. stm32-pinctrl pin-controller: GPIOI bank added. stm32-pinctrl pin-controller: GPIOJ bank added. stm32-pinctrl pin-controller: GPIOK bank added.' d5 `; t2 h* f1 c, A* C5 S stm32-pinctrl pin-controller: Function[0 name:i2c_1, groups:1]2 O" k% B0 J0 Y stm32-pinctrl pin-controller: Function[1 name:i2c_2, groups:1] stm32-pinctrl pin-controller: Function[2 name:i2c_3, groups:1] 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] stm32-pinctrl pin-controller: Function[6 name:spi_4, groups:1]- b9 J- E1 ?' k- |' r stm32-pinctrl pin-controller: Function[7 name:spi_5, groups:1]) d! |; p+ H8 B9 K4 s. K. K" T2 \ stm32-pinctrl pin-controller: Function[8 name:usart1, groups:1]4 T7 Z9 x+ Z( g3 \7 B }& ~ stm32-pinctrl pin-controller: Function[9 name:usart6, groups:1] stm32-pinctrl pin-controller: Function[10 name:usart7, groups:1]& x, z0 N! D0 u" v stm32-pinctrl pin-controller: Function[11 name:usb_fs, groups:1]$ L6 w$ w9 j0 }( w; O. F5 n stm32-pinctrl pin-controller: Function[12 name:usb_hs, groups:1] stm32-pinctrl pin-controller: Function[13 name:can_1, groups:1]# T- @' t( ^4 H% Q# i o4 B0 { stm32-pinctrl pin-controller: Function[14 name:adc1_in0_pin, groups:1]- c& V2 y* t: v# @$ n4 a stm32-pinctrl pin-controller: Function[15 name:dac_out2_pin, groups:1]6 @7 N0 V8 @" s" k2 t# ^5 v stm32-pinctrl pin-controller: Function[16 name:ltdc, groups:1] stm32-pinctrl pin-controller: Function[17 name:sai_2, groups:1]2 Z, h; ]3 x! l9 d' k stm32-pinctrl pin-controller: Function[18 name:i2c_4, groups:1]- E/ j7 `$ B. ~7 n5 ?8 j) Q. t stm32-pinctrl pin-controller: Function[19 name:gpio, groups:3] stm32-dma 40026000.dma: STM32 DMA driver registered! R: ~7 N3 Q! z7 T' h* m( L! b stm32-dma 40026400.dma: STM32 DMA driver registered2 W! [8 I% L& u# z SCSI subsystem initialized: E- a" O! n5 U usbcore: registered new interface driver usbfs1 Y. b, O2 Q9 o 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>7 i5 r' f5 a7 O9 k; Y PTP clock support registered Advanced Linux Sound Architecture Driver Initialized.4 i8 @0 G4 }% Q! N6 _( Q Bluetooth: Core ver 2.204 E- c4 ]3 W: M- ]- o+ x NET: Registered protocol family 31 Bluetooth: HCI device and connection manager initialized Bluetooth: HCI socket layer initialized Bluetooth: L2CAP socket layer initialized( i1 _: R$ C, ]- L/ \' W$ a Bluetooth: SCO socket layer initialized( F! y0 ^# t6 P* X, }3 s7 v! D6 W clocksource: Switched to clocksource arm_system_timer' D K* T" S, ]* V 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)8 ~2 Z# f, y \ E! Y3 Q& a) { \ TCP: Hash tables configured (established 1024 bind 1024) UDP hash table entries: 256 (order: 0, 4096 bytes); y' U! o4 s J' X UDP-Lite hash table entries: 256 (order: 0, 4096 bytes) NET: Registered protocol family 1+ l3 X( {# }! G }) { RPC: Registered named UNIX socket transport module.6 q9 p4 E& h; @' C: Q2 ~ RPC: Registered udp transport module.1 Y" f+ o8 `! ~1 _ RPC: Registered tcp transport module.1 g9 T0 @$ G% \$ W1 z RPC: Registered tcp NFSv4.1 backchannel transport module.' p1 S; V, p, E! g8 v8 n. ~! z+ M Power Management for STM32* N- H1 Y1 d7 U* r7 ? futex hash table entries: 16 (order: -5, 192 bytes)& d3 O: a" C1 X2 j' p6 f jffs2: version 2.2. (NAND) (SUMMARY) 漏 2001-2006 Red Hat, Inc. fuse init (API version 7.23); W1 N9 a3 P; X* A7 D Block layer SCSI generic (bsg) driver version 0.4 loaded (major 250)6 B9 ?6 M; B9 J- h4 V io scheduler noop registered io scheduler cfq registered (default)5 M" `) G' @% B+ H* A stm32-pinctrl pin-controller: maps: function gpio group pwms num 22 K) c5 ?/ Q0 t0 E. p8 c' z- n2 @ stm32-pwm pwm0: basing on TIM3.1(x16)( W8 |' `" L- v6 P8 y stm32-pinctrl pin-controller: maps: function ltdc group ltdc-0 num 29! O: W: u) w8 T4 M p3 X stm32_lcdfb 40016800.ltdc: fb0: fb device registered successfully STM32 USART driver initialized stm32-pinctrl pin-controller: maps: function usart1 group usart1-0 num 3 40011000.serial: ttyS0 at MMIO 0x40011000 (irq = 34, base_baud = 6750000) is a stm32-usar t( x" k. T7 V) g* Z* j" U) x. P console [ttyS0] enabled stm32-pinctrl pin-controller: maps: function usart6 group usart6-0 num 3: Q7 Z$ A; n& r! K+ ~ 40011400.serial: ttyS5 at MMIO 0x40011400 (irq = 35, base_baud = 6750000) is a stm32-usar t nbd: registered device at major 43 stm32-pinctrl pin-controller: maps: function dac_out2_pin group dac-0 num 2 stm32_dac 40007400.dac: dac1: no timer assigned, DMA functionality is not available* l' i& ]. K" S. m! P3 V; E stm32_dac 40007400.dac: created 1 character devices with MAJOR 2488 t! T1 M( i! A x3 s 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" 0x000000040000-0x000000100000 : "stm_flash_unused" 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 stm32-pinctrl pin-controller: maps: function can_1 group can_1-0 num 3) `9 B. Z# l$ e+ C stm32-can 40006400.can: device registered (reg=40006400, irq=31) stm32-pinctrl pin-controller: maps: function mac group mac_rmii num 10 stmmac - user ID: 0x10, Synopsys ID: 0x35# d8 n7 ~( z: F% ? t Ring mode enabled DMA HW capability register supported Enhanced/Alternate descriptors0 U2 ^3 v6 D0 r( p Enabled extended descriptors RX Checksum Offload Engine supported (type 2) TX Checksum insertion supported Wake-Up On Lan supported% \# V$ A6 \( t- U Enable RX Mitigation via HW Watchdog Timer* ]7 Z2 {/ S1 o7 x- `6 W, g$ l stm32-dwmac 40028000.ethernet eth0: No MDIO subnode found libphy: stmmac: probed0 _- }1 B$ ?5 w. R, p+ r eth0: PHY ID 0007c0f1 at 0 IRQ POLL (stmmac-0:00) active PPP generic driver version 2.4.21 R7 c/ d5 ~3 h3 |; V: r PPP BSD Compression module registered! ]+ P7 z( m& ?# k/ ~7 | PPP Deflate Compression module registered# Q& s/ k% x" z* A" Q9 ]% w [ usbcore: registered new interface driver rt2800usb2 ]0 i; y1 {" N8 I stm32-pinctrl pin-controller: maps: function usb_hs group usb_hs-0 num 38 ~, O v3 ]6 n/ p4 S8 S8 M3 ?) @( w 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" h- v, t. m' z/ e 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+ r% g7 f$ t( c5 q* W: A# V: G 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 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 dwc2 50000000.usb: DCFG=0x08200000, DCTL=0x00000002, DIEPMSK=0000000b dwc2 50000000.usb: GAHBCFG=0x00000000, GHWCFG1=0x00000000 dwc2 50000000.usb: GRXFSIZ=0x000000a0, GNPTXFSIZ=0x004000a0+ N# B3 i5 m0 D( l; O dwc2 50000000.usb: DPTx[1] FSize=32, StAddr=0x000000e04 ~- T- }! N2 L/ G+ ? dwc2 50000000.usb: DPTx[2] FSize=64, StAddr=0x00000100 dwc2 50000000.usb: DPTx[3] FSize=512, StAddr=0x00000800 dwc2 50000000.usb: DPTx[4] FSize=512, StAddr=0x00000a00) J9 e: l% @3 I- @/ K dwc2 50000000.usb: DPTx[5] FSize=512, StAddr=0x00000c00$ _/ g! H, |0 J9 O2 f dwc2 50000000.usb: ep0-in: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep0-out: EPCTL=0x00008000, SIZ=0x00000000, DMA=0x5abee5fb2 d1 p* n y8 p8 _ dwc2 50000000.usb: ep1-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep1-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: ep2-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb2 I+ H) I% U- Z" L dwc2 50000000.usb: ep2-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb6 ?, m! G- n {$ |' g5 o* V8 Z y dwc2 50000000.usb: ep3-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb2 b# q y6 b) ~( {, P8 t dwc2 50000000.usb: ep3-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb( @$ X" }( f1 ^( @) j( u dwc2 50000000.usb: ep4-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb0 g2 x8 O7 c0 Q dwc2 50000000.usb: ep4-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb/ g- e3 F4 |; e2 W& t6 P# a* u dwc2 50000000.usb: ep5-in: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb1 Q- v5 j F/ \2 C dwc2 50000000.usb: ep5-out: EPCTL=0x00000000, SIZ=0x00000000, DMA=0x5abee5fb dwc2 50000000.usb: DVBUSDIS=0x000017d7, DVBUSPULSE=000005b83 w7 \& I/ K7 Y2 { z f$ S! Q) U usbcore: registered new interface driver cdc_acm* Q' V: g7 U5 M" \% {. [ 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-storage2 O7 ^$ A: c% _" S Q2 r# S2 E g_serial gadget: Gadget Serial v2.4 g_serial gadget: g_serial ready+ y3 o9 j- o. b dwc2 50000000.usb: bound driver g_serial' K: v( z3 d! C: _ ^ i2c /dev entries driver; r) g1 }! [8 X; a, e J stm32-pinctrl pin-controller: maps: function i2c_4 group i2c_4-0 num 3 bmp085 3-0077: Successfully initialized bmp085!$ P( X* }0 p3 Z6 h: G stm32f7-i2c 40006000.i2c: I2C Controller i2c-3 at 40006000,irq=58 Driver for 1-wire Dallas network protocol./ z" b/ C9 ]9 V usbcore: registered new interface driver btusb( R- F9 q/ O) W' }4 v stm32-pinctrl pin-controller: maps: function sdio group sdio-0 num 77 a& _5 R m; G- m& O( S9 D' i# Z mmci-pl18x 40012c00.sdi: Got CD GPIO! u3 E# {0 y/ x; R mmci-pl18x 40012c00.sdi: mmc0: PL180 manf 80 rev4 at 0x40012c00 irq 37,0 (pio)) w+ V$ p# k: P$ T0 P% i4 L& ~ 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 dma1chan33 F/ E) p# }- c( f 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 Kosina6 K3 I/ ?( n/ z6 v- E$ Y! c2 M \# x usbcore: registered new interface driver usbhid0 B8 n/ |0 l9 p8 h usbhid: USB HID core driver8 s% O8 t" z5 {1 A stm32-pinctrl pin-controller: maps: function adc1_in0_pin group adc1-0 num 2; B2 [& w$ @# N6 r. z stm32f4-adc 40012000.adc: registered" k2 P( R6 S a2 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* S' }* \/ b: C. T5 v can: controller area network core (rev 20120528 abi 9) NET: Registered protocol family 29' {0 ^: ]2 k; c" ]8 T8 W can: raw protocol (rev 20120528)0 i8 Q/ i( j( m* ?. Z/ G8 H can: broadcast manager protocol (rev 20120528 t)6 v) V- W+ H g1 y J- a( V can: netlink gateway (rev 20130117) max_hops=1 Bluetooth: RFCOMM TTY layer initialized; G/ @2 I' u, V6 y! d. t& R# a Bluetooth: RFCOMM socket layer initialized7 s- F, k; ^) Q5 W* N Bluetooth: RFCOMM ver 1.11 hctosys: unable to open rtc device (rtc0) vmmc: disabling5 Q1 I$ C2 @; \; E, l0 a7 l ALSA device list: No soundcards found.* b, V1 B2 A2 {5 ~4 P Freeing unused kernel memory: 4000K (c0312000 - c06fa000) init started: BusyBox v1.24.2 (2018-11-22 20:35:58 EST)/ q' D. J5 H' {8 [4 Q / # amixer: Mixer attach default error: No such file or directory stm32-dwmac 40028000.ethernet eth0: Link is Up - 100Mbps/Full - flow control rx/tx / # free4 z, L+ @) B% s9 h+ `3 J total used free shared buffers cached Mem: 60432 8140 52292 0 0 4792 -/+ buffers/cache: 3348 57084' j" g$ f+ ?, B& C, ?* @7 v / #% ^- D2 D/ B; C7 E7 r9 M. ` 5 l% l: y% V. V ( q( S! V/ Z) [ |
STM32F746G-DISCO移植lvgl9.0性能基准测试
STM32F745 USART1 Bootloader启动失败排查与解决的流程分析
STM32芯片命名规则
STM32 引脚到底有多少?为什么一个引脚能当好几个用?
入门嵌入式,为什么STM32是“优选起步”?
嵌入式-单片机-STM32 EXTI中断
STM32单片机进行除零运算,为何程序不崩溃?
STM32 LL为什么比HAL高效?
STM32时钟详解
2025国庆中秋活动体验报告2——TouchGFX的UI设计
微信公众号
手机版