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