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