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