你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

基于STM32H563ZI官方评估版使用经验分享

[复制链接]
攻城狮Melo 发布时间:2024-5-24 18:55
前面有提到ST官方提供了几份芯片,顺带的还有其评估版。其中包含着STM32H563这块评估版。0 V# a( p! C, w; ^+ ~# C# M

7 x6 P6 N! ^& E# _' o# Q; o4 m 微信图片_20240524185428.png # X: ~. E5 `; ^8 q$ y4 |1 r
1 {7 q; |7 ~. S
其接口为TypeC(其他几款都是MicoUSB,所以就先试试这块)板载STlink,值得一提的是这块STlink是V3版本的,因此一开始还需要更新我的STlink驱动(我的是V2)。
" K! I8 x) j6 V# \: ?; V. r, v! `
' H( Y9 u7 ~  @ 微信图片_20240524185432.jpg
! U* m3 O) i7 c: G$ C9 u  O
) X% ^0 p' ?* G
评估板整体非常的漂亮,发现ST的风格是白色,相较于TI的红色风显得娇贵。不过可惜的是大部分IO的排针需要我自己进行焊接(这种加长排母还得单独买)。并且其字体都有点小,眼睛要看花了。; u) a% s  N/ `6 p8 Z' J" Z3 [1 Z
: \  ^7 J1 s4 Z/ }. N4 y
接上这块板子之后,最开始我是以为没有串口驱动的,因为我连进来的时候提示有未知设备(这时候没有意识到是STlink)我找遍了设备管理器没有找到STlink的设备提醒和串口的设备,折腾了好久才想到这个可能是V3,然后我就更新了一下驱动。
: ~( ?* c$ u; ?4 B3 ]
1 Q4 ~0 ?( a( j/ R 微信图片_20240524185436.png
+ Y+ B; V/ @$ g
5 u6 S9 h3 e3 m' @2 T$ J
然后我发现串口也有了,这个串口居然是和STlink在一起的。不过好歹是知道了应该是有板载串口的。
3 _( Z: L' ?0 s% O2 ~3 Z# K$ H2 z, O1 M, i2 g
然后之后就是用CubeMX去生成一下代码,这里又犯了一个经典错误,我最开始是使用串口一进行通讯。因为以前用的所有板子都是串口一来通讯的,不过发现串口一并没有效果,然后这时候我意识到有点不对劲了,就去找官网的原理图查看其原理图。/ ]& Q2 D) i, O, G* ?2 ~# ?; v
, I8 v% S$ {+ G% |  c
微信图片_20240524185438.png
: x/ T1 F4 c& W& D9 V

# P0 }5 }3 Q6 @! {8 b3 S1 M7 g8 e9 b找到T_VCP_TX和RX看一下是使用了哪两个口子来通讯。
* s( i( B1 Y8 z' @
9 y% O  a3 z- J 微信图片_20240524185442.png
# d9 v1 C/ I+ U$ n! i2 ~; t

8 B# I# P0 L! I4 \4 _$ _这里使用了USART3来通讯,但是使用的是PD8/9这里在CubeMX中打开后还需要手动的修改引脚。) |  t. a5 i: Y. m: M
6 M( {/ T2 W' j* I
微信图片_20240524185445.png
1 r" v- U$ j! O0 {
& W2 @3 f/ b2 V1 W
  1.   while (1)- a, q, |$ V6 c+ J1 T, q6 F* ]4 h& R
  2.   {
    / {4 f: ^9 a3 g/ j
  3.     /* USER CODE END WHILE */2 ?' T3 A' T7 q! h6 s! j! t
  4. - d1 r. c6 H4 t! O$ ]4 u
  5.     /* USER CODE BEGIN 3 */$ L! Y* v. q) W; J2 a0 c7 j
  6.     HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_4);
    1 C- L3 t1 Z7 N5 e6 q- z
  7.     HAL_Delay(1000);
    : u6 c" d4 a1 W) V7 q7 B3 C) P
  8.     printf("Hello World\r\n");! d8 z1 t6 Y# g+ {$ S+ R5 B
  9.   }
复制代码

. r1 u3 M) d/ j/ @& O' j3 Q7 A加上串口重定向之后,利用串口打印输出,发现串口是可以正常输出的。
9 t6 |' S$ g/ \* n! D
3 ?8 j: Q5 c* c9 z$ U9 k 微信图片_20240524185448.png
' D1 p2 b. b! H0 g) x. M( K" h0 p* e6 U: w: f
微信图片_20240524185451.png 4 \5 g' C% K) o; m

6 X- v/ n' d1 S这块芯片的主频到达了250MHZ,而我之前常使用的F407ZG的主频才只有168MHZ,正常的F103C8才仅有72MHZ,因此这款芯片的性能可以说是非常高。1 V8 ]. |* X  a1 m0 h

3 T5 C6 E4 g( E+ G; H0 m$ G
并且我在启动的时候有一个惊喜的地方。
1 n- v' g" q! g$ o0 @9 ~5 c' ?6 A7 p+ U+ p9 {4 _) l' M+ y) Z; x
微信图片_20240524185455.png
; o" _- j" L! s' Z  X+ H& _
' z2 u( k2 }2 i% g1 |9 o2 [
其推荐我开启ICACHE,之前在F4系列上没有ICACHE即指令缓存的功能。之前在H7上面也见到过,但是没怎么仔细的用过H7,说明自己还是用的少了。
2 |; i  P  ^& W* u$ I3 P+ x9 Z! v# H! ~8 }/ w
微信图片_20240524185500.png 8 @3 J! F+ L! S2 g
. F, O' J! E6 m$ _8 q  W" D' v
并且其MPU也可以配置多种内存模式。
9 }0 d4 h$ m4 G# _% x9 E+ U1 ^5 a6 z+ s5 S3 v8 B( q4 o; R) X
指令缓存是一种用于存储处理器指令的高速缓存,目的是提高程序执行速度。
' V; M2 U$ s, V$ d# H6 i8 P

: o3 L) k3 G1 o6 gICACHE缓存指令0 e5 A# s) R/ [0 p3 V' C
ICACHE的主要功能是存储最常用的指令,以便处理器可以更快地访问它们,而不必每次都从较慢的存储器(如闪存或RAM)中读取。当处理器需要执行某个指令时,它首先检查指令缓存。如果该指令已经在缓存中,则可以直接从缓存中获取,而无需访问主存储器,这样可以大大加快指令执行速度。
5 ?2 ?8 Z8 W9 m
2 i. c3 \- v2 R1 ~$ JICACHE的大小和工作方式可能因STM32系列的具体型号而有所不同。通常,ICACHE的大小相对较小,以便在处理器内部容纳,因此它可能只能存储部分程序代码。选择何种指令存储在ICACHE中通常由硬件逻辑来决定,通常是根据指令的访问频率和程序的执行模式。! [9 S3 ]: n- f1 s' w7 W$ {9 D

1 b: I) G9 _  W$ v2 a* F6 ]; P9 n- l* O尽管ICACHE可以提高程序执行速度,但在某些情况下,它可能会引入一些额外的复杂性,例如缓存一致性问题(Cache Coherency)。
8 _* ]: f, m" h/ O1 n$ A' W
4 s; B/ I0 T; e, A8 M0 `
缓存一致性) w5 M) U9 k* T
缓存一致性问题,是涉及多个缓存的系统中的一个重要概念。在多核处理器或者多处理器系统中,每个处理器都可能有自己的缓存,用于存储最近使用的数据。当一个处理器修改了某个内存位置的数据时,其他处理器缓存中对应的数据可能会过时,这就导致了缓存不一致的问题。) M: L8 j6 M6 P6 K2 B0 U- v
7 r. U) b7 G8 `
' j3 d- f! S; G. x1 F4 f
转载自:电路小白
" h4 M2 d& h  m5 q  B, R1 D' S2 _8 Y如有侵权请联系删除# C# G3 u3 o$ M: p$ p! D3 u
1 Q7 ^& ]7 |. ]7 X# i3 h0 V# Y2 i
收藏 评论0 发布时间:2024-5-24 18:55

举报

0个回答
关于意法半导体
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
招聘信息
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
关注我们
st-img 微信公众号
st-img 手机版