>>实战经验列表, g, A3 G# X8 }" s 社区资料下载栏目开通【ST MCU实战经验】版块,将在这个板块中,针对工程师的应用问题,ST做了详细的解答。进入ST MCU实战经验后,可直接下载文档以及程序。也欢迎大家回帖交流。 提示:点击各主题,进入帖子,可下载ST工程师解答详请5 L7 X, S2 C" o! P1 k4 ` 0 ~0 M7 Y- B- U, R 一、通信接口1 a, d, `8 M: h& \1 P ( I- N E2 i/ _$ W- c 1. STM32F2x7_Ethernet(FreeRTOS)驱动更新. @0 W3 e+ p! o1 }7 i7 ?" o 2 t3 r- S. d2 q 2. SPI 接口发片选信号导致死机 3. USART1不能设定600BPS的波特率& c( G" B& f7 F! ~/ `4 r; j- F 3 T3 X* s5 ~ F& b7 I, j 4. I2C 接口进入 Busy 状态不能退出" Y: W! ]9 ^7 S 8 c3 u h1 A+ t0 z: N, d- U 5. 对 Flash操作导致 USARTU接收丢数据3 T8 f1 p( }: x: @& }3 ~ / w5 y$ A, A# I6 ~; X 6. USB接口易损坏* W# V) r$ i7 A! T9 T( j) } 7. UART发送数据丢失最后一个字节3 T. X* x% ~) {( ] 8. 使用 CCM 导致以太网通信失败9 J' S$ F# J7 M9 _ A9 g4 w * t0 s) W' i# [ 9. SPI3 接口没有信号送出5 j3 f* A8 o- S 10. 时钟延展导致 I2C 通信不可靠 V) u- }. y3 h9 {) S* H4 Q 1 [" v8 }1 X0 m }: g* w 11. M0的USART波特率自动识别问题 12. WK15 OTG做U盘主机兼容性提高 5 C! z+ @6 u; Z; b" ? c 13. 以太网电路设计注意事项 - ^, M- m2 E* P 14. OUG主机库在BULK传输上对NAK的处理5 b0 I- E0 V. h& U/ r/ ` 5 v( x% a. E' f- k. b 15. 串口断帧检测 16. VCP例程用于数据传输时丢失数据的处理 * o1 J# U6 H" X 17. STM8L051F3P6串口UART数据起始位判断的问题 % V8 j" ?; m+ v8 g1 k2 t: y 18. STM8L152C6T6 硬件IIC,发送从地址后无ACK信号2 f( e( v( I P % B+ B/ F& _( v g0 Q8 d 19. STM8中UART奇偶校验的使用方法8 P& Z: S6 {! c; K8 c ; x) g2 _& l9 Y 20. STM32以太网硬件设计——PHY 21. 一个判断I2C总线通信异常原因的方法- a; R; ?2 j( ?- M4 l9 A' J {: d; {- {5 N 22. USB device库使用说明 / H( x! U& p4 I8 d+ _1 @% c/ X 23. STM32F103上USB的端点资源* f3 y8 C+ n4 k 5 R. ?1 [# W6 y# I- n 24. 使用CubeMX生成TCPEchoServer程序. G% `$ ^" {% A6 c. y* x7 w5 l 4 }8 e, `' s8 I2 u/ g/ ~2 S) \ 25. SPI接收数据移位1 E- v- ~) C- [* n B3 I2 h 26. STM32F0中Guard Time的设置 27. LwIP内存配置, W o* o; v0 ~; Q6 Z- c- ^ ( y* O$ A& h$ E, v 28. STM32 USB Device的简易验证方法 29. USART 中断方式接收无响应问题的一种情况及其处理方法 30. STM32 基于 Nucleo板 CAN总线的建立" g/ Y6 [1 b7 h* K) I3 m& ^# d2 c 31. STM8 CAN总线的IdMask模式的讲解 32. STM32F746ZG USB 驱动不正常 ) k7 V: F, \9 B8 g8 m 33. MCU在STOP状态下通过UART唤醒分析 `, |( N+ Z, v& _! Q 34. 通过STM32CubeMX生成HID双向通讯工程 35. 串口工作在DMA模式下有时接收异常 ! a9 W: ~6 V5 M 36. STM32 Bootloader中 DFU使用限制% z! U( N- ?* S A0 P 37. UART异常错误分析) x# U! U2 a. Y7 t 38. 基于Cube库无法检测CAN2的接收中断 1 N2 \* E. b2 L. c0 D* x% K- a* A 39. 基于STM32F7的网络时间同步客户端实现 40. HID与音频冲突问题 8 B! L! B/ Z! y6 X2 b " E& e( c& ]5 u# {" _9 d 41. 在进行USB CDC类开发时,无法发送64整数倍的数据 3 n( s& \# W0 g* B 42. 从零开始使用CubeMX创建以太网工程) ]4 D- t. K0 l) n0 e6 S 43. STM32F4xxx的I2C总线挂起异常处理& m# O$ k1 E! S/ W% T 44. LPUART唤醒STOP MODE下的MCU, L: [" {: W$ H! e+ D1 J 45. STM32系列 MCU模拟双盘符 U盘的应用 . P: u( C) l; u7 q; c 46. CEC输出的数据和数据长度始终不匹配. z5 z6 b! B/ e, | . ~ S) @% @& o9 @0 W% B! ?: O: Y" E# [ 47.STM8Lxxx I2C 程序第二次数据通信失败的问题分析 48.在进行 USB CDC类开发时, 无法发送64整数倍的数据(续) 49. 增加UART接口应用时的异常分析. p. T4 q- {3 z" T* b5 o 50.UART应用异常案例分析2 Z* \8 O, }1 }3 X& J* P& z ! \6 U5 B4 x+ A& Q: r- H" z 51. I2C配置顺序引发的异常案例 x3 B! A8 F, [% l$ l 52. STM32 USBD VBUS GPIO1 h2 z" h! Y) X1 q! G# I( W& J - v* J* H" m9 m8 g m2 l! b! l3 D 53. USB传输数据时出现卡顿现象0 C' }1 p. U; q# y; d$ s8 P" o A0 z2 O P: ^5 h 54. STM32的高速USB信号质量测试实现) I+ `3 {: T B' E' r- Q 55. 基于STM32 I2S的音频应用开发介绍 : ?$ \9 |; i- P% v" L 56. HID_CDC复合设备在WIN10的识别问题 * C$ t* \, S, p! H& e O$ ~- W4 b7 J 57. STM32F767 的 USB 工作在 HOST 模式下的远程唤醒问题 + [2 B- ~& Z1 e ( k. c: K9 s% v }) y 58. 一个关于LPUART输出异常的问题分享 59.通过 DfuSe 工具控制程序跳进 DFU 模式) D. Z% L! @- f& V) @ 60.UART IDLE中断使用-接收不定长串口数据 (2019·9·更新)0 F2 b! _: K. c. r1 R 61.一个因初始化顺序而导致异常的话题 (2019.12.24)8 q0 j* F4 C5 P8 j# m/ p0 t; O 62.MC SDK 5.x 中增加位置环 (2020.5.29)7 p4 }! Z7 a# Q7 W( [% Z7 Q8 F 63. 如何根据应用需求调整STM32L5的memory partition(2020.7.16) 64. 使用STM32的MPU实现代码隔离和访问控制 (2020.7.16); Y3 n0 h: v5 P# q; K. q. A. i 二、电源与复位* } X: ^" x# b2 O 1. Vbat管脚上的怪现象/ l5 X/ N" g j$ B5 t$ l 3 s" @, d. P J* m, X: F3 D+ Z, R 2. 上电缓慢导致复位不良 3. 关闭电源还在运行 4. 使用STM32 实现锂电充电器3 D+ H0 J6 \$ I1 R) H 5. STM8L152 IDD电流测量8 t [7 @0 _" d% ?6 q 6. STM8连续复位问题) {, \: V: a" W: o$ e$ ^6 G% | 7. STM32F2电压调节器REGOFF与IRROFF引脚的使用 8. 使用STM8L-Discovery验证STM8L在LSI+WAIT模式下的电流) F5 m" Y- {8 ^ 9. STM32F7与STM32F4的复位序列比较. C5 V, o# p" `% f 9 O$ r( m x B8 O# v2 @1 |1 ] 10. STM32F107 复位标志问题 5 f$ Q A( J) I, O8 a% U* k \ 11. VBUS引脚一段时间后管脚无法正常工作的分析和解决方法 $ N6 G+ B+ ]0 R4 X: ? 2 g$ |7 G8 D7 [# T: D: N 12. Nucleo_L053不上电也能运行 13. STM32L4中STOP2模式下的漏电流 0 U2 L1 x& v/ Y0 ^; d+ l' A9 }. o 14. 在没有外置晶振时HSE_RDY异常置位 15. FLASH被异常改写 (2018.5更新); E% h4 s0 {7 A1 L# T6 K ( e. A& a- L& w) J; A$ c+ j 16.与 PDR_ON 有关的一种异常现象及分析(2019·2·更新) : k+ C. o% s! {- O$ A6 b- m' p 17.一个 STM32 芯片异常复位之案例分析(2020·2.27) u2 O! o0 ^9 K& @+ r" A7 ~ 三、IAP和Bootloader7 b- L+ l9 X" O+ ^ , y3 S( } J, X: d8 f 1. Boot Loader与上位机通信不稳定1 b8 b9 ]# W9 J3 x* E/ F. D* \ # |& l" U$ A1 C$ v 2. IAP+APP 模式下不能启动 RTOS 3. 从 IAP Loader 向 App 跳转不可靠 + \8 V% l" y8 R- M( w 4. STM32 MCU IAP例程跳转到APP代码简要分析 5. STM32F091从自举程序向应用程序跳转的问题与解决 6. STM32F09x不使用BOOT脚实现System Bootloader升级代码 / ^% A. A- q5 } 7. STM32F0启动模式相关问题探讨 8.STM32F091空片使用System Bootloader下载代码8 u# R b4 C* g' p6 J 9.STM8L IAP 应用程序中编程指导6 ]: U) ~ b$ l6 j0 }* f" F3 L 10. 如何通过STM32的串口实现简易脱机编程器 11. 一种从用户代码调用系统存储器中Bootloader 的方法 3 U% S" V& R! y; O 12. 利用 USB DFU实现 IAP功能5 F) w& T. L @' L+ H7 i4 X8 T) m# l / D' K! y3 K R5 o! w8 | 13. STM32 Bootloader中 DFU使用限制. a% u/ Y( x: _; r$ G+ a8 U' a 1 ~4 v1 T# `7 K' a I7 n 14. STM32L011x和STM32L021x启动模式注意事项5 G) m# H4 ]$ s: b4 d- i/ ? # K- j* V5 u7 z& Q. E 15. STM32L011&STM32F091 空片检测进行 System Bootloader 编程注意事项 ' | @1 T: _' R/ h 16. 无法使用内置 Bootloader 的 DFU 方式进行固件升级 * H" A+ E/ ~$ h 17. 如何使用STM32NUCLEO 板来测试串口Bootloader 18. 在STM32L011上通过I2C接口实现IAP8 f' D6 j& B+ o* B$ ^ ! n2 [; u9 z7 E% Q, s, S8 p5 h+ j 19. 在IAR中实现通过将程序在SRAM中调试的方法 - ^, A* E! X6 Q4 n# P+ k% i% E 20. STM32F769AI 同时使能FMC 和QSPI 带来的引脚冲突问题% S7 j3 [ m; z6 w( ?1 `; r ( M2 |- l( A6 N6 G6 B3 ~: F 21. USB DFU IAP 例程移植的两个话题5 W- [1 T8 |8 n k- D 8 i I$ U1 k1 b' J* X' f1 l( E 22. STM32F769双bank启动 # i2 A; b2 O) y( l/ L* v' _% x- n 23. DFU加载 工具 DfuSeCommand的使用 , o% Z5 z% }. \7 o3 R/ f3 n$ p, V' t 24. STM32F0 使用 DFU 升级后 Leave DFU Mode 不能运行用户代码 25.STM32F767的USB工作在HOST模式下的远程唤醒问题 (2018.12月更新); y* w: D! [% i; C1 l: ^ $ `( P& A. i. R. d5 d: p 26.STM32 Bootloader异常复位案例(2019.4); k f/ J, ~& e 四、存储器 1. 对 Flash操作导致 USARTU接收丢数据 2. 使用外部 SRAM 导致死机 3. SRAM 中的数据丢失) a4 D& b' \0 v" e6 f: H7 W& f/ d 4. 干扰环境下 Flash 数据丢失 * ~: ~" I: d! G: l5 ]7 L, J& R 5. 使用 CCM 导致以太网通信失败 6. STM32F429使用外扩SDRAM运行程序的方法6 O' G6 u7 K) N. R) y* Q `# ` 7. 使用STVP实现对STM32L1系列EEPROM预置数据* D! L$ s" U, {. i- s7 i 7 Q3 l, Z" c. d' @ 8. FreeRTOS RAM使用情况及优化方法 9. 在IAR 6.5下如何将数据存放至flash中2 ~5 s: y+ M% C ; N; c% `* G4 q8 P# k9 ]" f 10. IAR下如何让程序在RAM中运行 11. RAM上电后初始值问题 ) @4 a' B% n2 } 12. Stem Win 驱动移植-FLASH&PSRAM(MCP)接口驱动设计( m0 p" M. ?) p# e 9 ?0 _3 X7 N- d" R 13. LwIP内存配置1 t$ K- i. d' n! V3 g4 ? 14. STM32F2高低温死机问题 ; g' `; t5 R$ x) G, c 15. 使用STM32F427的CCM RAM时遇到的问题* s5 l" {$ r* ~5 W / {/ B) \+ n( Y* m j: b8 T 16. 利用QuadSPI外扩串行NOR Flash的实现 7 p3 M' e. O# y6 @ ' v: |" O6 b+ C3 k: y- m) A# c. _ 17. STM32擦除内部FLASH时间过长导致IWDG复位 . H4 v: j$ j' |8 ~; D+ V( Q 18. 基于STM32CubeMX开发U盘访问应用 (2019·6·18更新) 五、模拟外设0 I1 U: V% s8 [+ Z . B' E7 z7 A# e. G; o Y 1. ADC对小信号的转换结果为零( p: T- Z# O, d) R: y. E1 R : R3 F; u2 Y9 f- e8 ~ 2. ADC键盘读不准 ) s( K4 Z+ H, O6 K: g0 |: m 3. 扫描模式下 ADC 发生通道间串扰 + F P% H" z2 P4 ^4 @0 E0 r& B 4. DAC无法输出0V的问题分析解决5 J3 ~5 f& S' o9 G; [# \ ; o0 H& D) c5 e3 ^ 5. DAC无法输出满量程电压的分析解决( S* ~, x3 ?# K* |( i# ^; u; b# g 6. STM32F30x 的ADC 采样的傅立叶变换( S! v2 v: w' _, @- d0 w 7. STM32 F1系列 DAC的示例详解+ l; `3 q: q/ U# R! h1 c4 Z 9 d/ p" D' @) w6 o 8. ADC 连续模式采样浮空引脚问题 & x/ q7 }5 o7 S* w 9. PWM硬件间隔触发ADC 10. STM32F30x 禁止ADC 已关闭情况下再次关闭ADC8 X( I. i! w$ j- s 11. STM32L4 系列中ADC 通道配置上的区别; p7 z$ T: P- X; T9 V 9 U- o" J( l3 y ~ 12. STM32 ADC模拟看门狗及其应用 : T! f# A) w& {7 J3 w& d, a5 r 13. STM32L053 comp2 比较电压无效问题 14. 运算放大器OPAMP在STM32L4上的应用 15. STM32 OTA例程之ESP8266使用 6 z9 N* d3 d; h7 ]1 [4 Z 16. STM32多个ADC模块同时采样转换的应用示例 (2019·7·24)/ B3 h% A) x$ _! }7 ?" S 六、计数外设 1. Watch Dog 失效# E8 i2 M7 n! q; H: K2 a1 ] % K# q* n+ H6 B5 K3 Z2 g 2. RTC计秒不均匀2 K- v" l$ X4 ]: q8 u , B3 }# k7 o. q$ c, s) Z 3. 软件启动模式导致 IWatchDog 失效8 L- v( k4 r P6 |+ Y 4. STM32F030R8 定时器移植问题& F( S2 E9 s6 `9 r7 ]0 Q; L: D ; k" t: g) _2 a% P+ |% W) |+ G$ l 5. STM32F0使用RTC Tamper的几个注意事项 / [! F9 y- m5 |$ C9 | 6. STM32L053可控PWM脉冲方法之DMA5 W* k! C" x, S5 f ! W8 U6 K2 G1 a2 @6 q! x 7. CounterMode,OCMode与OCPolarity关系 8. STM32L053可控PWM脉冲方法之DMA. r5 G9 F$ Y+ ` ! A. m+ }& P# O. w2 g 9. STM32F1通用定时器示例详解—TimeBase! g0 \1 O! {9 [3 G4 ^5 z 10. STM32F1通用定时器示例详解--TIM15_ComplementarySignals- [! t; {0 h8 z 11. STM32F334 应用于LLC + SR 的高精度 Timer 波形产生 & P. {! \* x# ? s 12. HRTIMER的多种Fault事件联动机制 0 g" q3 [7 C3 f6 C& t 13. STM32通用定时器 示例详解 —One Pulse G- M* R5 R" a% W6 k1 {$ Z6 K( Y 14. 如何用LSE校准STM32F4内部RC振荡器 15. 一种使用Timer测试HSI实际值的方法 16. FreeRTOS定时器精度研究+ d2 [; [. _: Z: r. R( U: g 17. HRTIMER产生多相相移信号 & K3 F l L& H' ?8 i' { 18. 窗口看门狗启动时异常复位问题% _) k( F6 w# N$ R3 R- U9 ^1 W* w7 ^ 7 V. v% Y, F. r4 \: C2 I 19. PWM硬件间隔触发ADC' h- S5 `. {$ p' Q- d7 N # C# i' r: S! J3 N. ? 20. STM32F030低温下RTC不工作 ! @5 |* G; W" _* w/ s% h; G 21. 教你一手 | 基于 STM32Cube 库的 Timer 捕获应用 2 k8 d1 H: q+ m5 O4 R 22.STM32F334 应用于LLC + SR 的高精度 Timer 波形产生 (2018·9·29)& r& r0 _6 N3 W0 A( z c 23. 基于STM32定时器实现定制波形的示例 (2019·7·25) % \4 e! b$ B0 [" _ , F/ R/ r8 `3 `* }( D0 s 24.STM32定时器触发SPI逐字收发之应用示例(2019.12.24) 3 N% p Z. c Z0 E- P1 p& U 25.MC SDK 5.x 中增加位置环 (2020.3.31)$ f w9 J; G2 x' y( V/ E & G3 E) _$ e/ V& m% s3 [ 26.STM32高精度定时器PWM输出话题 (2020.4.29) 27. 基于高级定时器的全桥移相PWM发波方案(2020.5.12)& ~* C' k! @+ @3 [; B 8 r' s6 R) X, P' d; ]) P 七、内核 3 e8 K0 K- T2 }9 s1 ^, [ 1. 使用指针函数产生Hard Faul4 }1 f) c9 Q. i3 d A& A. r( K* \9 g5 S( u 2. 调试器不能通过JTAG连接器件 X W1 b2 Y+ Z4 ~- w 3. 鬼魅一样的Hard Fault0 f `1 `' \# b4 G7 J / G1 i7 {& E- ?) v# l: i 4. 进入了已屏蔽的中断[ 6 x- c7 ~0 X$ s5 o# [ 5. 浮点 DSP 运算效率不高 ; c0 R. F' U. s0 b0 K: T. o8 ^ 6. STM32上RTOS的中断管理$ R2 J) B7 ?* @" Y' W) I. ^( j0 I 7. STM32F7与STM32F4的复位序列比较: J' l# R- t$ R/ q8 h3 y 8. STM32F30x 的ADC 采样的傅立叶变换* c$ N' t7 ^- ~6 a' U/ c; x( J: F * C! H7 U3 @/ u6 z, k 9. EXTI重复配置两次导致误触发中断的问题 10. STM32F3xx/STM32F4xx使用浮点开方指令6 M, V- x0 i7 @0 ~' \( Z 11. RMW(Read-Modify-Write)对 STM32F7xx内核运行速度的影响/ d" g# [& V/ ^- Q 12. STM32F7 MPU Cache浅析 13. STM8使用24MHz外部晶振无法正常运行 (2018.3更新)5 ]6 j* }. X$ f% v8 R& R 0 z E6 ?9 T4 M2 s 14. STM32F0 不同代码区跳转时总失败…这些操作你.. (2018.6更新). K3 M; K* S7 @( @ 3 U6 U7 y3 M! d 八、系统外设 , Q/ X5 H* X& e$ r# ~/ U, _* V- q 1. PCB 漏电引起 LSE 停振 2. 时钟失效后CPU还会正常运行7 \& V, U6 E- h 3. STM32F2中DMA的FIFO模式! H* B: i% \9 v/ y 4. STM32L053的GPIO翻转速度的测试8 }/ l/ C% ]: n0 a* o h6 Y / q) p; Y$ `9 s$ U1 `- J 5. STM32F4xx PCROP应用 6. STM32L053的GPIO翻转速度的测试2 w' u5 q: N8 q/ { 7. 如何在IAR中配置CRC参数 8. PCROP区域函数无法被调用的问题与解决% ^* ~2 A0 _3 @5 H 9. 关于AN4065中STM32F0 IAP升级后的外部中断不响应问题 " T! k F ~, ^$ t) R2 p0 C- p 10. Stem Win 驱动移植-FLASH&PSRAM(MCP)接口驱动设计# l4 c7 W' R7 a; [. p: T& L# I 11. 如何用LSE校准STM32F4内部RC振荡器 12. EXTI重复配置两次导致误触发中断的问题 . B& ?& o* q8 S' g9 A* c. S8 b 13. 时钟安全系统的应用(LES篇) + _1 j3 ~& Z9 [6 u: V* E 14. 利用DFSDM开发PDM麦克风应用介绍 - ^$ a- l) d7 l8 X 15. STM32H7的FMC外设在DCACHE使能时运行不正常 16. STM32H7 DMA 传输异常案例分析 (2019·3·19更新)0 ^) \' |8 I& `; t& r' ^- b 九、标签和收发器+ ~! |1 B0 P K 1. CR95HF的初始化步骤 , O6 Z( F; G8 U, x M1 H; R 十、生态系统 * o% m' s6 K5 g. q# ^3 a2 J 1. STemWin_Library_V1.1.1中STM324x9I-EVAL的RTOS工程显示不正常问题 ( c: l# c- c0 j, ~* S 2. MDK Logic Analyzer 功能在STM32中的实现问题 3. 在IAR6.5下如何将数据存放至flast中3 }7 t+ j6 j) ?" x: Q! T. j 4. FatSL移植笔记 5. Keil中使用STM32F4xx硬件浮点单元 6. 如何生成库文件(MDK和IAR)( |- D0 s& W; \8 p! _. T0 t2 k 7. Nand Flash文件系统解决方案. o! {4 \2 D2 y& J2 v0 f 8. STVD在调试时弹出“Cannot access configuration database”的解决 9. RTOS低功耗特性的设计原理和实现" _+ r; q) _) J$ l6 D% E9 Z5 ` 10. IAR下使用J-Trace进行指令跟踪1 E8 d% M) w$ a0 V& |/ o 0 y y/ x J& F M 11. STM32上RTOS的中断管理7 g4 j& N. l) b- M$ i / p$ L: F0 Z1 H2 i7 y# K 12. IAR下如何让程序在RAM中运行 13. 如何在IAR中配置CRC参数1 ^# y3 D6 ~. v$ y' z. n8 B ! [# b( S8 i9 s6 k. ]$ Z. R7 _ 14. 基于STM32F411 Nucleo板的Broadcom Wi-Fi开发套件的快速开始手册 15. 使用mbed进行STM32开发及STM32F0的时钟问题 16. 使用STM32CubeMX实现USB虚拟串口的环回测试功能% {% E! ~, |) d2 P& M# d& M ' D4 \% S& P4 s: U 17. 多任务系统中的不可重函数使用注意事项 18. STM32 utility的hot plug功能! y2 z% i# K6 [7 E8 e 19. 如何将CoreMark程序移植到STM32上6 \, `+ |* v# I2 f 20. FreeRTOS定时器精度研究/ A5 R0 m5 I7 ]$ ~$ @. a 6 n: |2 W2 e& S- Z% @ 21. 如何使用Eclipse和GCC搭建STM32环境 9 N1 u# d% O1 Q5 `2 ?. @6 D6 ~% Q 22. 如何建立一个基于GIT的STM32库" S2 ^% R& p6 W3 _9 }5 Q( \/ p * [. b8 ?3 B; a' ^ 23. 从零开始使用CubeMX创建以太网工程 l. a) m3 _+ y* B# K) g 24.从STM32Cube库向标准外设库移植FatFs文件系统 25. 基于 STemWin的屏幕旋转 5 N! C- H* N I 26. 编译软件 Hex文件烧写 7 f9 S# S+ a* |3 H8 t E' N1 g : f$ f d8 O2 b# [8 G 27. 使用B-L475E-IOT01A探索套件连接AWS IOT平台 9 v2 O% n8 t% T9 G3 w. g6 p 28. USB CDC类入门培训( [, B- h( r0 H 29. USB DFU培训 : U/ j9 A: O& }& u7 P) Q1 ^ 30. 用于量产烧录的拼接Bin文件操作 31. STM32免费开发环境该用谁 ( w1 w+ O, O& X- \/ l; }" A 32. 免费全功能STM32_TrueSTUDIO_9.0 (2018.3更新)' I2 I6 p4 v9 h/ b 33. 基于STM32L4 IoT探索套件开发AliOS Things (2018.5更新)' O, N$ Y5 B9 K- c8 x ) K! y* X# ~4 Z- q: O 34. TrueSTUDIO出现 Program “gcc” not found in PATH的解决 35. STM32 FOTA 例程之 cJSON使用 36. STM32F769DK 云端固件升级例程使用说明 ( D y3 A3 z% U$ L' Y9 \" [ 37. STM32 FOTA 例程之 Paho MQTTClient embeddedC 使用 ( \1 {, c: m6 e2 [ 38. 基于 STM32 的阿里云物联网平台方案 ; ?9 Q t6 F. L' f, [; J* C 39.AliOS 任务上下文切换原理分析 8 D! R# z# W) F/ y+ s5 r' |' X 40.STM32F334 上的 ADC 管脚和 DAC 管脚 复用问题 " c3 |1 C# D# E2 { 41. STM32F769DK 云端固件升级例程软件开发文档 ) \- C: m6 a5 S1 Y* x) I6 J # C3 T* ?. M6 \, V 42. STM32CubeL4 固件库V1.13.0版的RTC唤醒问题 (2019·6·18更新)/ r. ]/ F( J& n 43.使用USB虚拟网线(USB Ethernet gadget)直连STM32MP1和Windows PC(2019.9.19) 44.零基础快速入手STM32MP1 (2019.9.19) ' Q+ ^( a0 Q# u2 [ 45.STM32L1xx与 STM32L1xx_A的差别 (2020.4.29)8 y( G7 p- l+ Z1 r4 Q 十一、调试 1. 关于STM8S SWIM Error[30006]的分析 ! E; S) p" l0 X 2. STVD在调试时弹出“Cannot access configuration database”的解决 3. IAR下使用J-Trace进行指令跟踪2 S2 R/ B- S+ C: r, Q v ) C5 [5 P D2 P3 }) Q 4. 菊花链 JTAG STM325 l. j! t3 X1 s; Q$ D+ {3 _( p 5. STM32F411CEUx 能下载程序但不能执行 6. STM32F103C8T6 程序上电跑飞8 N' y+ T0 h( w0 C6 N' t" T 7. 使用STM32 ST-LINK Utility 设置读保护后不能运行2 W& L" B. t! S6 C" ? 8. VBUS引脚一段时间后管脚无法正常工作的分析和解决方法 ( G5 [0 t7 \ G+ p5 p* J! m 9. SWIM协议的GPIO口模拟# y) ^. _4 _# f 10. STM32F091空片使用ST-LINK烧写后复位不能运行用 11. STM32L011对空片进行编程后程序运行问题 (2019·9·12更新) 12.如何在IAR和KEIL中计算CRC值 (2019.1.2.24) g& V/ E. G. u5 Z% Q- C 13. X_Cube_ClassB代码移植 (2019.12.24) 7 _$ d/ _# W8 i # @3 P5 l |9 B9 F( {6 H 14.Keil中烧写STM32F750内部Flash方法 (2019.12.24)( a+ V0 n3 @3 \; Q. O5 @ 3 R9 s9 Y8 F# f5 n8 l 十二、人机调试 1. 一步步使用STemWin在STM32上开发一个简单的应用 2. Stem Win 驱动移植-FLASH&PSRAM(MCP)接口驱动设计! D- Q" ?0 m8 }- j 3. GUI方案中ALPHA通道处理介绍" k `) p6 k/ B % Q3 c& t5 e2 D' `6 v' W 4. 基于FMC8080接口8位LCD的STemWin的移植7 d4 J, A2 Z+ g+ `9 E! c5 a: l % E: H' c' x9 ]! ]4 L% W1 C' H K 5. TouchGFX中Callback模板实现原理 (2019·9·12更新) ! t9 k7 c1 d% ]; p" N3 y' C) d/ Z 6. TouchGFX快速创建滑动应用例程 (2019·9·12更新)+ H4 U& d4 B8 T1 ` 5 h! W& h# S. i4 l9 r6 M2 _7 [ 7、TouchGFX 简单界面设计_按键控制光圈移动(2020.2.27). c" N: C0 s; w! K5 E V& R# ^$ [ . J: p& Y, }$ `( q5 L$ J; h 8、STM32L5中如何关闭trustzone (2020.5.12) 十三、马达 S0 P8 Y: C2 @5 S2 p: T# C : g2 s! Q" @! \( A) o7 s: B 1. 电机控制同步电角度测试说明. n. r& x9 ~7 ~/ F 十四、安全% q1 o5 @9 g: u. S; E# T 1. 一步一步使用STM32安全启动与固件更新(2018.3更新)/ d! t& d! z2 n: F, l / k! f2 c, T% `; f9 `8 [ 十五、其他 1. 跳不出的 while 循环4 Z! Z6 W2 F0 D, q8 t9 d $ i9 c3 {( L% B- R, x; _ 2. 外部IC连接NRST导致MCU内部复位信号失效的问题 . x( \1 E3 l7 _- |# j- o 3. 潮湿环境下不工作 2 `( H! r t( A3 c, E# l4 n9 s 4. PCB 漏电引起 LSE 停振 " o& E% f X+ r2 \" J0 F6 H 5. STM8L152 IDD电流测量 6. 使用STM32实现锂电池充电器 , S* w( i0 c& x9 |% Q 7. STM32_STM8硬件平台基本检查 8. 验证STM32F401在STOP模式下的电流* @6 L% o% G; X, o4 T$ A% [ 9. P-NUCLEO-IHM001 电机开发板串口调试指南; Q* l$ P; j9 N3 M _# |; c7 s+ W. r9 q 10. 一种计算CPU使用率的方法及其实现原理 11. STM32 RTC不更新原因分析 12. 关于ST库函数的代码性能对比' B0 p8 S3 I+ B) v 3 e7 p5 [- o. r- E" X 13. 在IAR中实现通过将程序在SRAM中调试的方法8 W; M4 j% n- W 1 |$ K5 Z3 E9 E: T! d; H9 K. L# V' i 14. M95xxx EEPROM写保护配置 ) |* ~. X' L0 C8 A 15. 4SRxx的GPO的属性 V) C$ D" B, G3 @& W# W 16. CR95HF的初始化步骤 ^/ s7 D: R0 g: N. D, J : ^1 v' S5 k) }1 P- n% x; f* w 17. 电机控制同步电角度测试说明 18. STM32+BLE通过 Notification与 Android应用程序通信的例程 19. M95xxx EEPROM介绍( \* e5 k+ j1 d6 G: V" t) u # `( Z3 J+ }- W1 x3 C 20. STM32 DFSDM测量温度应用 2 [2 B1 J7 f% Q+ r& `. x " g: A' Q l( f% T0 G* h; s+ H( d! m/ @ 21.代码实现PCROP清除 22. 理解与应用MPU的特权与用户模式7 S; j+ j w3 S8 t* s) m 23. 用于电机控制单电阻采样PWM变形信号产生 24. STM32L低功耗模式唤醒时间测量$ D# k( }5 {. E# }/ W 25. X_CUBE_SPN7程序电机启动抖动问题. M. I4 Z" {/ N" P% R , y, v- S' {3 g5 U7 m0 A 26. 发现STM32防火墙的安全配置. X$ E: ?8 |' c5 N* h: J5 S% j9 i 27. ST FOC4.3库关于STM32F30x系列ICS采样代码的修改 + }* A$ n2 @6 Z. Q) k( H 28. 如何用STVP 命令行模式对STM8进行批量烧写(2019·9·12更新)5 X- K! F' p; D% I: d 温馨提示: 4 g" g( u. I# Q7 A3 F- r1 g如果您在使用ST产品过程中出现问题,欢迎在社区发新帖提问。版主和工程师网友会热心帮助您。 1 p, T: f7 o' [/ T9 p2 n【社区导航】STMCU产品购买、技术支持、意见咨询指南 4 G: }$ h& |9 p& V) d, i1 |$ X + M4 I0 J4 B' C* d7 k# ` 5 c/ K$ ]) E- V% R0 `- ~# i |
有个问题纠结很久了。使用的STM32F205RE MCU SPI2 进行DMA 传输,数据量大的时候接收的数据会乱,直接将MISO 和 MOSI 短接测试的,代码如下:7 {; S( `' A E5 M, K7 D
期望接收到的全部为0x55 ,实际出来的是前面数据正常,后面的数据就乱了。
回复:【ST MCU实战经验】栏目开通!官方解答应用问题,欢迎下载!
以下是全部代码:
#include"stm32F4xx.h"
void RCC_Configuration(void);
void GPIO_Configuration(void);
void SPI_Configuration(void);( t6 @; {% g/ l! C
void Delay(int nCount);3 b+ D% F2 E+ m7 X; `. V
int main(void)
{ RCC_Configuration();6 }1 t0 ~3 A0 M# D6 h/ X6 x6 ]$ A
GPIO_Configuration();6 T2 K k, l' B3 T' g8 T
SPI_Configuration();
while(1)
{ int data=0;+ U1 ]2 L5 H5 c/ i9 J. R& l
SPI_SendData(SPI1,0x55);
while(SPI_GetFlagStatus(SPI2,SPI_FLAG_RXNE)==RESET); 2 H- }0 o2 c) b+ c7 n2 ]: o
data=SPI_ReceiveData(SPI2);
if(data==0x55)8 W7 ]% f. {/ m
{ while(1)9 t6 N8 \- ~7 ]$ h7 Y. Z4 i |& y9 @/ R
{ GPIO_SetBits(GPIOA,GPIO_Pin_4);0 i9 ?, P+ W$ _ b. v) B3 j, z+ h O
Delay(0xfffff);7 ?" g @" f2 d) C
GPIO_ResetBits(GPIOA,GPIO_Pin_4);+ s/ F4 o' d! L: }& s6 X
Delay(0xfffff);
1 K* e' t/ }' E' I+ x# H% `, V1 m
};, n( b3 W C I) ~8 J: ]' x
}+ X3 D- _& Q0 {( k8 H) l8 O/ D
else while(1)
{ GPIO_SetBits(GPIOA,GPIO_Pin_4);2 R' F' b) F; Z% J" S% V% \% l
//Delay(0xfffff);
//GPIO_ResetBits(GPIOA,GPIO_Pin_5);
//Delay(0xfffff);1 c' F9 o- g4 F; b
};
}% ]. Y8 [6 T9 n2 j7 I
}
void RCC_Configuration()
{ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);& p& b* Z# z5 i1 m+ X
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB, ENABLE); 1 q2 \4 k7 R& I/ q( R$ c
}" y# U& `9 q3 P8 a) ]* o
void GPIO_Configuration()
{ GPIO_InitTypeDef GPIO_InitStructure;: h" G" I9 c, x
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;) v) n9 L5 G6 M \5 x
GPIO_Init(GPIOA,&GPIO_InitStructure);( H s- b0 ]6 `0 p
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}# p* |" o& J2 j& z$ U" ?/ J
void SPI_Configuration()! A0 B9 f* L5 o. G! ^% z
{ SPI_InitTypeDef SPI_InitStructure;) X0 ~0 X. s6 G3 }$ ]( s7 O; J$ Z
GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);* `8 Z0 e8 o2 Z. o$ ]
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);. M" n" l3 e* Q1 P: c, \1 F
GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI2);8 J$ J6 U8 L0 a9 d4 G2 x7 X
GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);/ L5 N/ m- L7 r' Q2 G4 L
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;- A( E. x6 F7 R( q& ~
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;8 c3 _) K, @( e1 Y6 m* e" F
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;* v1 v' g" j/ ?% @% q7 o
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;- E/ R8 j$ `1 w% @ U( k; L
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;/ I& A" x; m7 Z. L' |
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;
SPI_Init(SPI1, &SPI_InitStructure);
SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;5 j5 O: L% l! U! V8 w$ N
SPI_Init(SPI2, &SPI_InitStructure);+ d$ u$ q" i! q; |# Q( \
SPI_Cmd(SPI1,ENABLE);
SPI_Cmd(SPI2,ENABLE); ) h* _/ D, \. \$ q2 f* }$ I
}
void Delay(int nCount)
{ int c1=nCount;
int c2=nCount;7 L( G6 l' k6 I9 f: Y. Q
for(;c1>0;c1--)2 h: }2 h9 Y4 \. A8 ^5 u6 P1 g+ E
{
for(;c2>0;c2--);1 u; E. G+ M9 B4 ? Q" P
};1 \% V9 P: j4 h# Q" s( P' _
}
先谢谢了~~
回复:【ST MCU实战经验】栏目开通!应用问题,官方解答,欢迎下载!
楼主,我想问一下,STM32F4 SPI1和SPI2自通信问题,SPI1为主模式,SPI2为从模式,可是我在设置波特率时,必须按二分频,SPI2才收得到SPI1发来的数据,如果设置为其他分频情况,将卡在while(SPI_GetFlagStatus(SPI2,SPI_FLAG_RXNE)==RESET); 这句上,还有就是SPI1和SPI2的波特率是不是必须为相同的,才能正确通信
以下是全部代码:
#include"stm32F4xx.h"+ [2 A+ w" P5 I, K
void RCC_Configuration(void);7 [" ]2 u! ~& D* @* ~* P9 ? Y6 @$ t
void GPIO_Configuration(void);
void SPI_Configuration(void);$ I; e/ w4 i: _% k! x2 z
void Delay(int nCount);% L5 D K' O/ P9 K% E0 N. D9 t
int main(void)
{ RCC_Configuration();
GPIO_Configuration();' h$ y0 X; z" f, u% G( _
SPI_Configuration();
while(1)
{ int data=0;+ k/ @5 ~& @# |/ r: O4 P% l. R
SPI_SendData(SPI1,0x55);: T, u+ b/ b5 h; {3 E
while(SPI_GetFlagStatus(SPI2,SPI_FLAG_RXNE)==RESET); ( i/ O" T/ W/ [2 A% F
data=SPI_ReceiveData(SPI2);
if(data==0x55)
{ while(1)& A5 [# K1 {6 }" k9 Z1 n, D% M
{ GPIO_SetBits(GPIOA,GPIO_Pin_4);9 }' Y3 g# D" v7 G2 u* {: _ G1 H# S
Delay(0xfffff);! C7 @0 B" K* E, M, h
GPIO_ResetBits(GPIOA,GPIO_Pin_4);
Delay(0xfffff);
};8 c: ^2 l( u ?6 l h4 C& l) S% z
}
else while(1)5 R" F! A* g: i M- N- `2 P7 ?1 R
{ GPIO_SetBits(GPIOA,GPIO_Pin_4);
//Delay(0xfffff);
//GPIO_ResetBits(GPIOA,GPIO_Pin_5);5 `: n8 J# I9 c# ] w! o" u# ]% u
//Delay(0xfffff);) j5 Z. O" I3 a7 V5 x+ R! [9 P
{# h# _% E3 ^0 H2 ^
};' E, Z* Z% G1 N; l
}
}7 t L- P7 ?& `+ g. L
void RCC_Configuration()# f3 B) u* m. E: O/ ^2 n' N
{ RCC_APB2PeriphClockCmd(RCC_APB2Periph_SPI1, ENABLE);
RCC_APB1PeriphClockCmd(RCC_APB1Periph_SPI2, ENABLE);
RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOA|RCC_AHB1Periph_GPIOB, ENABLE); , b) o) _# `) O y
}5 x: W! c: O @& n
void GPIO_Configuration()
{ GPIO_InitTypeDef GPIO_InitStructure;( w* g! A5 O$ j5 c9 v; L! o6 b
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_OUT;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_100MHz;) d4 y3 v O& |3 h# S3 P
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_UP;+ q8 w8 j! A8 T; I$ j
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF;+ g2 V! A& x0 ]6 }, h# e0 F
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_OType=GPIO_OType_PP;) R* p4 l: q C) G n9 {
GPIO_InitStructure.GPIO_PuPd=GPIO_PuPd_NOPULL;5 g' y6 s4 a/ r: V. c3 U9 I$ i
GPIO_Init(GPIOA,&GPIO_InitStructure);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;
GPIO_Init(GPIOB,&GPIO_InitStructure);
}
void SPI_Configuration()# p" w2 ?3 U8 r6 I: A3 @
{ SPI_InitTypeDef SPI_InitStructure;+ C6 e1 ^5 J Y. D `% U
GPIO_PinAFConfig(GPIOA, GPIO_PinSource5, GPIO_AF_SPI1);" P3 G7 z! W8 G0 }4 N' X
GPIO_PinAFConfig(GPIOA, GPIO_PinSource6, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOA, GPIO_PinSource7, GPIO_AF_SPI1);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource13, GPIO_AF_SPI2);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource14, GPIO_AF_SPI2);
GPIO_PinAFConfig(GPIOB, GPIO_PinSource15, GPIO_AF_SPI2);
SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;5 z/ x# O+ O c9 d$ Y9 \
SPI_InitStructure.SPI_CPOL = SPI_CPOL_Low;" s2 Z) i# e& o1 L4 C
SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;/ G, d# I- ^* k! O6 W
SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;8 d, @/ _9 t# n* h6 Z
SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_2;
SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_LSB;
SPI_Init(SPI1, &SPI_InitStructure);+ k8 ]/ j) j7 P0 b" O$ {
SPI_InitStructure.SPI_Mode = SPI_Mode_Slave;- ~# F z! E8 e" j$ R, E
SPI_Init(SPI2, &SPI_InitStructure);
SPI_Cmd(SPI1,ENABLE);. d$ ?; X' X- R" x9 A' I- Q# A! ?
SPI_Cmd(SPI2,ENABLE);
}
void Delay(int nCount)1 w. _8 \ S% Z' _8 S
{ int c1=nCount;
int c2=nCount;: p) P* r( u3 P) O: o
for(;c1>0;c1--)
{
for(;c2>0;c2--);+ Y- J7 o2 A7 ^( ^. q, m
};
}' M2 S5 P1 U3 f0 ]0 J
先谢谢了~~7 n7 g7 s' E# h% S$ A' m9 e) O
- ^) [5 D; B1 U
R- |) Z0 E; q+ {- m, K" i
楼上的问题,看我帖子给出的提示哦~
RE:【ST MCU实战经验】栏目开通!应用问题,官方解答,欢迎下载!
回复:【ST MCU实战经验】栏目开通!应用问题,官方解答,欢迎下载!
回复:【ST MCU实战经验】栏目开通!应用问题,官方解答,欢迎下载!
多谢,真好的板块,学嵌入式的好地方啊,来对了,哈哈。
6 a8 }* X0 |' q
" |- j7 d a, }$ ^; u5 j: x
多谢支持!!
RE:【ST MCU实战经验】栏目开通!应用问题,官方解答,欢迎下载!
RE:【ST工程师 MCU实战经验30篇】之USB接口易损坏
回复:【ST工程师 MCU实战经验30篇】之USB接口易损坏
回复:【ST工程师 MCU实战经验30篇】之USB接口易损坏
RE:【ST工程师 MCU实战经验30篇】之鬼魅一样的Hard Fault
RE:【ST工程师 MCU实战经验50篇】之鬼魅一样的Hard Fault
回复:【ST工程师 MCU实战经验50篇】之浮点 DSP 运算效率不高
鬼魅一样的Hard Fault0 b& X. o* T% W5 l
该问题由某客户提出,发生在 STM32F101C8T6 器件上。据其工程师讲述:其某型号产品的设计中用到了 STM32F101C8T6 器件。在软件调试过程中,遇到了一个棘手的问题:程序会莫名其妙的跳到 Hard Fault 中断。在程序中,产生该中断的位置不固定,忽而在这里,忽而在那里。发生的时间不确定,有时候程序运了很长时间才遇到,有时候开始运行后没一会就发生了。产生该问题的原因不明,不知如何进行排查。
; ]9 U4 g+ n+ K* c8 M* e" [
咋解决?
RE:【ST工程师 MCU实战经验50篇】之浮点 DSP 运算效率不高
RE:【ST工程师 MCU实战经验50篇】之浮点 DSP 运算效率不高