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