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