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

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

[复制链接]
攻城狮Melo 发布时间:2024-5-24 18:55
前面有提到ST官方提供了几份芯片,顺带的还有其评估版。其中包含着STM32H563这块评估版。" y  K+ ^. |8 ?6 t6 h, l

4 b3 V- W6 U" g: ^ 微信图片_20240524185428.png
3 K  F( {9 s% z7 T, E1 v& c1 N& t
) }; q0 Q" W; T0 j2 {- P
其接口为TypeC(其他几款都是MicoUSB,所以就先试试这块)板载STlink,值得一提的是这块STlink是V3版本的,因此一开始还需要更新我的STlink驱动(我的是V2)。
/ q1 k) C' w7 k* S# n2 ]  I5 V$ K: X! R- a0 o8 T7 d
微信图片_20240524185432.jpg ' P3 v3 f5 B! N& E' r4 i* `5 M0 G

" I; t* W( E( E' i8 P2 Z  E' n6 d评估板整体非常的漂亮,发现ST的风格是白色,相较于TI的红色风显得娇贵。不过可惜的是大部分IO的排针需要我自己进行焊接(这种加长排母还得单独买)。并且其字体都有点小,眼睛要看花了。
  a5 k7 C/ V' ~3 R- y; h! q. S4 E" L9 W' H0 i
接上这块板子之后,最开始我是以为没有串口驱动的,因为我连进来的时候提示有未知设备(这时候没有意识到是STlink)我找遍了设备管理器没有找到STlink的设备提醒和串口的设备,折腾了好久才想到这个可能是V3,然后我就更新了一下驱动。
1 k" t6 F5 y) Y9 Z+ G+ F. C6 n- R- T+ b0 P4 c
微信图片_20240524185436.png 2 r1 J+ `& B/ w6 K: ~7 O( t

0 v3 C* g5 n: n- p+ W* u& ]9 w然后我发现串口也有了,这个串口居然是和STlink在一起的。不过好歹是知道了应该是有板载串口的。: Q$ ?- F, P8 q

- `) @8 k! N" _
然后之后就是用CubeMX去生成一下代码,这里又犯了一个经典错误,我最开始是使用串口一进行通讯。因为以前用的所有板子都是串口一来通讯的,不过发现串口一并没有效果,然后这时候我意识到有点不对劲了,就去找官网的原理图查看其原理图。# K( F1 n3 O+ ?' r

5 x% C1 \  ]8 t0 x9 ~! j6 { 微信图片_20240524185438.png
% v* S$ W2 M8 M- q
/ L2 A2 C6 R& v
找到T_VCP_TX和RX看一下是使用了哪两个口子来通讯。
6 S$ {9 g# S' K) Z" h8 ]! y/ y
2 t6 w7 ]( D; w, ?& f 微信图片_20240524185442.png
1 y# V" ^" g7 I2 `1 I5 p* v5 G
7 v- }+ u4 N* \( {. O) ?/ q  L5 b
这里使用了USART3来通讯,但是使用的是PD8/9这里在CubeMX中打开后还需要手动的修改引脚。( z: ]; \2 \6 F: c& N) E1 k$ q! m

3 d2 s( ], I2 L+ I 微信图片_20240524185445.png 2 g- J  D- u$ Y7 L* D( f1 d

  Y: f% X" V: F9 l3 Y( W0 D9 U0 }% g
  1.   while (1)
    $ w5 ?, T& b% V: K$ N& s2 \( C0 {$ U
  2.   {
    ' }8 e1 [8 w/ q% I( y* F% b; a( X
  3.     /* USER CODE END WHILE */9 V3 T+ b9 |# n/ e6 K) U  f
  4. * k! j+ [" `- W! S# p
  5.     /* USER CODE BEGIN 3 */
    6 _9 j8 w& {5 `: x5 w  g0 R, B8 {- G
  6.     HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_4);6 j3 w* [* p9 n& Z) u, D
  7.     HAL_Delay(1000);
    & J& _: g4 V  @4 u2 ]! W2 x; L
  8.     printf("Hello World\r\n");9 v& g: a5 V0 Q% a
  9.   }
复制代码
  Q4 e: M1 E; G" [3 r
加上串口重定向之后,利用串口打印输出,发现串口是可以正常输出的。
! d% z4 s" r% g  G' G7 x( @# o" I7 Q" i' C4 ?0 x1 y
微信图片_20240524185448.png + U, L' T7 o# n4 i6 A! U
6 X1 E/ F4 y, s4 I* e
微信图片_20240524185451.png ! y0 B' k5 r: o+ J
( G, Z1 _3 I+ o
这块芯片的主频到达了250MHZ,而我之前常使用的F407ZG的主频才只有168MHZ,正常的F103C8才仅有72MHZ,因此这款芯片的性能可以说是非常高。9 n& J" [1 G/ h# \" p' H2 z7 f
* R2 g5 v5 B$ a- u
并且我在启动的时候有一个惊喜的地方。" K4 l, y2 p5 f: v1 c1 p+ c* A5 j

7 ?( ~, N+ M7 ~7 C" P0 E* [ 微信图片_20240524185455.png
' ~2 H% h7 W. S, D5 i1 c# ^' b( P
# j) H: j) O. ?" I2 u1 W
其推荐我开启ICACHE,之前在F4系列上没有ICACHE即指令缓存的功能。之前在H7上面也见到过,但是没怎么仔细的用过H7,说明自己还是用的少了。# m- \9 ^- ^5 j& F/ U
# t6 k& ^/ m4 U! S. d0 X& l6 U
微信图片_20240524185500.png : V- o/ h8 F4 u9 \; A+ ?/ Y+ O% }
' @% D& }) i7 x& `9 S0 T: b
并且其MPU也可以配置多种内存模式。
! T8 Z' h+ i7 T- {  [) P; \' w& \& z( i6 i  L. y
指令缓存是一种用于存储处理器指令的高速缓存,目的是提高程序执行速度。$ V' k' j: Y0 a- D; @
0 f* x* I5 O- G/ O: J
ICACHE缓存指令' E! b: o9 G  e9 x
ICACHE的主要功能是存储最常用的指令,以便处理器可以更快地访问它们,而不必每次都从较慢的存储器(如闪存或RAM)中读取。当处理器需要执行某个指令时,它首先检查指令缓存。如果该指令已经在缓存中,则可以直接从缓存中获取,而无需访问主存储器,这样可以大大加快指令执行速度。
" q  N4 A' A+ @' g
: r5 a9 p+ X8 k5 v  `* t% b# MICACHE的大小和工作方式可能因STM32系列的具体型号而有所不同。通常,ICACHE的大小相对较小,以便在处理器内部容纳,因此它可能只能存储部分程序代码。选择何种指令存储在ICACHE中通常由硬件逻辑来决定,通常是根据指令的访问频率和程序的执行模式。
/ _  A8 p$ v& V* }! X- y$ O4 F7 Y' R# k
尽管ICACHE可以提高程序执行速度,但在某些情况下,它可能会引入一些额外的复杂性,例如缓存一致性问题(Cache Coherency)。
# j* x) }6 k0 h" O

& I9 t' A" d. [/ \缓存一致性- x9 X; D; g, g8 i8 p  U
缓存一致性问题,是涉及多个缓存的系统中的一个重要概念。在多核处理器或者多处理器系统中,每个处理器都可能有自己的缓存,用于存储最近使用的数据。当一个处理器修改了某个内存位置的数据时,其他处理器缓存中对应的数据可能会过时,这就导致了缓存不一致的问题。' P' b2 u! S* Q& r4 F0 Z

0 q2 S$ Z3 `% i1 K" u9 M& r1 x9 s( ~9 h" D7 G; V. L6 ?3 R) e
转载自:电路小白$ R$ h0 x6 e( p- Y/ R
如有侵权请联系删除# \# A9 }0 R) N' D8 d7 W9 j
% z/ r/ L2 y3 ?. K: e
赞 收藏 评论0 发布时间:2024-5-24 18:55

举报

0个回答

所属标签

相似技术帖

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
人形机器人运动控制、感知与智能配电
半导体创新技术与应用方向
EE架构与软件定义汽车
12V/48V 汽车智能配电(SPD)
区域控制单元(ZCU)与分区架构
关注我们
st-img 微信公众号
st-img 手机版