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

STM32CubeMX生成代码试用体会

[复制链接]
Bonner 发布时间:2016-7-23 17:40
听了研讨会 CubeMX感觉有点意思,回来试用了下。我用的是STM32F072B-DISCOVERY. Cube最新版本是4.3.1.增加了最新的L0,F042等新器件,和一些Nucleo板和Discovery板。可直接导入。; y* x+ y5 B. v# S
        程序实现功能:将接收到的数据发送出去。测试结果如图' E# q9 M! j" x/ U# ?
11.png   
7 `$ L: V; h: o# K
1 W/ |# Y. B) F0 U6 L( A        首先,打开STM32CubeMX,打开串口1。
. m* z  d; w, m& z8 A5 a( G8 @. C 12.png
; p" J0 ^4 J# \# `# _$ J& x% c- f1 V. l6 z9 i
  然后Project -->Generate Code , 有两个页面选项
+ f/ l5 ~6 b2 j+ r& M3 k 13.png   ' g. b& V! F0 d. V% t

: f6 G6 R' E: w! x* }5 P5 V可以生成如上3种工程,我一般用keil .
1 x. t0 [# |& M2 V- | 14.png   N+ T& d8 {: E- a
; L3 l& |- D8 _2 u" o
以上页面中红框1表示每个外设单独生成一个.c和.h文件,这样层次更明确。红框2中表示把其余不用的pin脚都设置为模拟输入以降低功耗,也选上。
& @9 k; G; X) f- M/ j) G7 ^4 d  }2 Y/ g) D, l$ F
生成工程后会自动生成4个文件夹,如图。其中Drivers就是硬件抽象层,类似于以前的库,都以“hal”结尾。inc和src分别是生成的头文件和包含文件。Projects是工程快捷方式。
7 N  ~/ V. G6 t+ f: v 15.png     @, Y7 t, {7 S' ]

  c8 G; X8 u2 W以下是使用以前的库需要做的工作,判断是否接收完毕,发送接收到的数据,等待发送完毕。; s5 G; ]  M2 j: ~+ k( V$ y" J( _" m
16.png   
  ^/ H2 a5 |2 F( r4 X- B5 B
0 A; i9 ^0 B" K8 I" ~7 v这是用新的CubeMX生成的工程需要添加的函数,串口接收直接使用HAL_UART_Receive( ) , 发送直接用HAL_UART_Transmit( ) .也不需要再加判断接收/发送状态。都包在了函数里面。修改响应的参数即可。但首次使用难免会不熟,我也是看了HAL里面的UART例程函数才知道可以调用这两个函数的,再看看原型,基本就懂了。
; x& ^( E$ _5 k, q# T. B 17.png   / I6 c: n+ R2 G3 l6 u+ W4 }

9 Z( ~, L- B! U1 a6 S' I3 f2 ~* p2 ~0 w  O+ _2 g
总体来说,硬件抽象层的这些函数,宏定义比起以前的库文件还是有很多的不同。但总体里说感觉还是会减少一些工作量。后面有工程时会具体再试一下。9 O9 A& Z- j3 T+ m$ b
2 n' p$ |5 [) ^$ [/ `. H6 ]
附件是生成的072的keil工程,除了上图的红框,其余都是系统自动生成的。
3 W8 [1 ]7 K0 s0 H
8 g5 \: A+ ~9 l' {1 C6 M3 Q 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 手机版