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