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