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