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

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

[复制链接]
攻城狮Melo 发布时间:2024-5-24 18:55
前面有提到ST官方提供了几份芯片,顺带的还有其评估版。其中包含着STM32H563这块评估版。6 D. k1 h3 I# {6 z4 C3 r+ a5 C1 [
) l6 O" \  \) ~# V( @# C
微信图片_20240524185428.png
' R5 v9 J9 V! T* [4 S( ]" L, ]; X
' |8 `. `; Z; |3 ?' K( K# k; H5 K
其接口为TypeC(其他几款都是MicoUSB,所以就先试试这块)板载STlink,值得一提的是这块STlink是V3版本的,因此一开始还需要更新我的STlink驱动(我的是V2)。
3 T" a2 p& c) m1 D8 q/ I8 v( ~4 G; {7 Z5 N$ n6 e
微信图片_20240524185432.jpg 0 X8 |; k  M9 T- p' g- s. H4 L

7 b: ]' w7 i! N. c  q评估板整体非常的漂亮,发现ST的风格是白色,相较于TI的红色风显得娇贵。不过可惜的是大部分IO的排针需要我自己进行焊接(这种加长排母还得单独买)。并且其字体都有点小,眼睛要看花了。
2 z% i7 @3 Q2 W9 W1 Z$ u2 K9 ~  L
接上这块板子之后,最开始我是以为没有串口驱动的,因为我连进来的时候提示有未知设备(这时候没有意识到是STlink)我找遍了设备管理器没有找到STlink的设备提醒和串口的设备,折腾了好久才想到这个可能是V3,然后我就更新了一下驱动。
- y! u# _6 o6 G9 T, O2 z4 S: l0 {( q& T5 g( A: R1 p' m/ S
微信图片_20240524185436.png
: ?- K/ d: G: _, v# e
2 g0 G' W+ H# h. @6 p1 l9 _6 L$ ?
然后我发现串口也有了,这个串口居然是和STlink在一起的。不过好歹是知道了应该是有板载串口的。2 t- o' }' @+ B7 ?7 |, @- N

0 S- G+ v( I( |( \
然后之后就是用CubeMX去生成一下代码,这里又犯了一个经典错误,我最开始是使用串口一进行通讯。因为以前用的所有板子都是串口一来通讯的,不过发现串口一并没有效果,然后这时候我意识到有点不对劲了,就去找官网的原理图查看其原理图。3 ]3 y  _$ G  W  C7 N1 W1 O+ g

7 y: h; g5 y7 N8 u1 h6 L( f. w 微信图片_20240524185438.png
' W9 b' W" ]$ L1 f
4 a' t& \  A) T) u1 H# [
找到T_VCP_TX和RX看一下是使用了哪两个口子来通讯。" ]9 X6 i3 p6 v- P
9 v9 `& |2 m) `5 e+ Y5 }3 e7 [" i
微信图片_20240524185442.png 1 t# p0 A  r$ R# [  a
! G4 F& z" [3 M# H
这里使用了USART3来通讯,但是使用的是PD8/9这里在CubeMX中打开后还需要手动的修改引脚。
+ t  o- O$ t+ h- I
* }: r3 l( V* {+ Q: b 微信图片_20240524185445.png 2 B7 i4 T0 d6 y; L) h) g; v7 y7 |/ l
" J8 A# s6 c$ h6 f, Z. Q
  1.   while (1): t0 B& ?) Z8 ^) U( T/ B
  2.   {, H3 o  x7 t- }8 V: j
  3.     /* USER CODE END WHILE */
    5 H5 f. B/ F* |' `

  4. $ S9 V; d; D! m+ Z3 A
  5.     /* USER CODE BEGIN 3 */: y  y1 U; v8 V. [2 P) |( G
  6.     HAL_GPIO_TogglePin(GPIOG,GPIO_PIN_4);
    6 j1 @" t. o; V8 P8 J
  7.     HAL_Delay(1000);
    5 g' [+ t  x' H6 V
  8.     printf("Hello World\r\n");
    & E  y9 y# x3 _: j4 E
  9.   }
复制代码
6 x; e4 R6 M. R* U: ^2 }
加上串口重定向之后,利用串口打印输出,发现串口是可以正常输出的。
  ]- `3 _; Q' H" i& K# K; b/ Z
8 z: V0 T* n' i" l$ M1 o: q  y 微信图片_20240524185448.png ( t9 Z) `5 S0 V0 j& z4 F0 {

) R9 _9 ]- G; ?, I
微信图片_20240524185451.png : |2 v" M. [$ G- j$ M' {6 D
; U% ?" G7 q, @/ J% E
这块芯片的主频到达了250MHZ,而我之前常使用的F407ZG的主频才只有168MHZ,正常的F103C8才仅有72MHZ,因此这款芯片的性能可以说是非常高。
+ J) W8 k* r" n6 E) B6 X
7 T# t3 B; [3 _% c" B
并且我在启动的时候有一个惊喜的地方。
) J1 H$ Y" [2 N  m- A% D" e8 Z) j/ w( H" J, S8 D% x
微信图片_20240524185455.png 9 A& g0 p5 Q" K9 ]+ l

) V- ]# @+ l/ P0 ], u0 {- e, V6 A其推荐我开启ICACHE,之前在F4系列上没有ICACHE即指令缓存的功能。之前在H7上面也见到过,但是没怎么仔细的用过H7,说明自己还是用的少了。; @6 A) p8 ]/ P+ p4 E/ f
4 {) N1 O6 u* a6 @" G) f) ]0 N# ~' e! N
微信图片_20240524185500.png
7 _! f' M0 |! S8 o: u7 p3 e

8 x) A& j% O3 z; W; o并且其MPU也可以配置多种内存模式。
7 m7 ~( s# w3 Y$ U( u$ A6 {5 D) h& Q  K1 P
指令缓存是一种用于存储处理器指令的高速缓存,目的是提高程序执行速度。
$ {4 _2 Q# a" F1 q( T
) X6 N3 S) B( b% t0 H
ICACHE缓存指令
6 e9 f* e# Y& C) bICACHE的主要功能是存储最常用的指令,以便处理器可以更快地访问它们,而不必每次都从较慢的存储器(如闪存或RAM)中读取。当处理器需要执行某个指令时,它首先检查指令缓存。如果该指令已经在缓存中,则可以直接从缓存中获取,而无需访问主存储器,这样可以大大加快指令执行速度。- U/ f* L& y, E4 i$ d# V
$ f2 f. M5 K- r7 A
ICACHE的大小和工作方式可能因STM32系列的具体型号而有所不同。通常,ICACHE的大小相对较小,以便在处理器内部容纳,因此它可能只能存储部分程序代码。选择何种指令存储在ICACHE中通常由硬件逻辑来决定,通常是根据指令的访问频率和程序的执行模式。
% O$ B# {7 ]1 b. N- c+ @8 ^  G
( E  @3 V( u. Z5 X6 G, v8 a7 `尽管ICACHE可以提高程序执行速度,但在某些情况下,它可能会引入一些额外的复杂性,例如缓存一致性问题(Cache Coherency)。2 S  m, d; [1 \$ o0 F0 k9 Q2 g
% [$ Q1 C) t/ U
缓存一致性
0 U' R( ^/ U9 p  H( @' L缓存一致性问题,是涉及多个缓存的系统中的一个重要概念。在多核处理器或者多处理器系统中,每个处理器都可能有自己的缓存,用于存储最近使用的数据。当一个处理器修改了某个内存位置的数据时,其他处理器缓存中对应的数据可能会过时,这就导致了缓存不一致的问题。
5 L( ~5 ]& K! |* S, A
9 f8 i: _; T# t1 Y% X! g+ S- f1 H$ |" h+ B
转载自:电路小白
5 S0 U: X% d3 w& h* g  y5 m* q如有侵权请联系删除. b5 t& |8 p' k, y! A- A3 }% g
, Q; J" [- A( M9 e2 I4 c
赞 收藏 评论0 发布时间:2024-5-24 18:55

举报

0个回答

所属标签

相似技术帖

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