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