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

STM32CubeMX生成代码试用体会

[复制链接]
Bonner 发布时间:2016-7-23 17:40
听了研讨会 CubeMX感觉有点意思,回来试用了下。我用的是STM32F072B-DISCOVERY. Cube最新版本是4.3.1.增加了最新的L0,F042等新器件,和一些Nucleo板和Discovery板。可直接导入。
/ Z8 h# `" Q! b$ Z        程序实现功能:将接收到的数据发送出去。测试结果如图
1 ^: y8 E9 S9 l( V' z" y4 u& Q 11.png   
: A2 R6 j. \+ ~- j; H/ B* m- `" a- e, f" `: e0 l$ c
        首先,打开STM32CubeMX,打开串口1。+ l; I" e9 I# q
12.png 2 ?7 g1 s: g; R4 Q" Z4 X& {! M
: f( l( ]+ k0 D  q
  然后Project -->Generate Code , 有两个页面选项
* F* |4 u2 ^3 @( J0 h: G5 n" N2 b  y 13.png   3 Z( B% W% \% |
# v- v) Q. n3 v: r& [: N
可以生成如上3种工程,我一般用keil . ' y7 H- L" H! j1 {0 S
14.png
- F, }6 {& z1 W. {/ T2 ?' \
* n! K3 Z5 b6 a以上页面中红框1表示每个外设单独生成一个.c和.h文件,这样层次更明确。红框2中表示把其余不用的pin脚都设置为模拟输入以降低功耗,也选上。9 @/ j! z) A( I2 I2 U% S& t

8 r$ j' B7 u& z4 y4 ?- b生成工程后会自动生成4个文件夹,如图。其中Drivers就是硬件抽象层,类似于以前的库,都以“hal”结尾。inc和src分别是生成的头文件和包含文件。Projects是工程快捷方式。
5 J8 j  Y# D  s 15.png   
" `: d" s2 x  N1 A9 J( z3 E/ B: ~! X2 B" A6 v# N/ k! L
以下是使用以前的库需要做的工作,判断是否接收完毕,发送接收到的数据,等待发送完毕。
. q" ]7 s* w' B2 M+ f 16.png   
+ Q6 [' c4 ^. W6 e$ F3 A  O, D# c* |! s& v
这是用新的CubeMX生成的工程需要添加的函数,串口接收直接使用HAL_UART_Receive( ) , 发送直接用HAL_UART_Transmit( ) .也不需要再加判断接收/发送状态。都包在了函数里面。修改响应的参数即可。但首次使用难免会不熟,我也是看了HAL里面的UART例程函数才知道可以调用这两个函数的,再看看原型,基本就懂了。+ c$ k( V$ H: |8 i6 H
17.png   
9 q' y+ }6 N7 h% d0 M9 V- q; p0 z) K: |. c( ?( h0 Y4 B0 v, Q
9 ~; v$ S3 T1 ]8 m7 W) F' E
总体来说,硬件抽象层的这些函数,宏定义比起以前的库文件还是有很多的不同。但总体里说感觉还是会减少一些工作量。后面有工程时会具体再试一下。
* Y1 @, F( y) `% o
% T2 j0 o( b7 x  `附件是生成的072的keil工程,除了上图的红框,其余都是系统自动生成的。) r, M* n: A5 @/ r# I& A) k

  N( L& U, v/ o8 r6 O/ A: d, b( L Cube_MX_STM32F072_UART1.rar (2.43 MB, 下载次数: 36)
赞 收藏 评论1 发布时间:2016-7-23 17:40

举报

1个回答
stary666 回答时间:2016-7-24 14:14:36

所属标签

相似技术帖

官网相关资源

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