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

STM32CubeMX之NUCLEO-l053串口加led

[复制链接]
kebao_1 发布时间:2016-3-28 18:33
本帖最后由 kebao_1 于 2016-3-28 18:40 编辑 8 E" a) j; d0 Y
. u  t; H) e* [4 r2 j' k
最近由于项目需求,接触了一下NUCLEO-l053的开发板。刚开始使用mbed开发,实在不顺手。  R; s/ i+ n9 V( L7 j. C
今天看到了STM32CubeMX软件,尝试了论坛上的一两个例程。
& y7 ?% Q; O8 {6 x, J5 R2 h  ^0 w* h+ A' W, Z2 t

5 o7 y. a/ @, `0 X! ]# V用STM32CubeMX把NUCLEO-l053的串口和led调通了,看到论坛上没有关于STM32CubeMX的串口的教程,就上传一个!!3 S5 g! Z) t+ v5 A3 m  M8 E, b( y5 C' d
: @+ ^$ T: f* a2 Q
. i1 p+ y1 q2 G# f( m0 E3 b0 h
也为自己做个笔记,好了,来干的!!7 D; ^) L, u  ^
' {0 w3 D9 i5 ]6 f5 m; c2 Z
5 i- T! I6 q! g# x
新建工程:选择NUCLEO-l0532 L  J* i! K. n- o
QQ图片20160328175414.png - F6 i+ L- D! f) ^. y

! ]# ^4 m' R4 i, d配置串口和led:
$ J' T( G' A0 `: g3 }- A; ?由于我们这里选择的是开发板,所以软件已经自动给我们配置好了led的参数
, _9 c' f8 t2 S
: ~; J. \: n, T7 F只需要配置串口就可以了,NUCLEO-l053上面的串口连接的是PA2,PA3属于USART2控制,所以如图配置
# x4 Y  K8 @% s5 G: B8 u. G7 |- } QQ图片20160328180245.png 7 h6 M+ C& V$ \" t

9 j9 y2 h& N- x9 j. R其他的就不用设置了, 使用的默认的即可
1 `# X; F& B8 ~
& ~$ K6 k7 W. g另外修改波特率的地方在这里/ U; o& Z& \/ b6 s# V; w
QQ图片20160328180731.png . X7 O0 W: {6 t; c

8 l1 O* p* P2 e7 e0 I& w然后产生代码就可以了' n7 V. L6 w1 d( Y
给工程写个名字
. E6 y  H7 N! R( {$ r1 ^5 \6 Q. W0 v8 H. @# z- L, b5 L+ r
自定义一个路径: i* ~# f# {  @! Y* ~

. m% f9 |" ^# o& Z/ R8 [5 U选择编译器1 e3 s. j; r: j4 R0 S+ ^3 ~0 u
: S7 _4 Q& y" H- B# _
其他默认
1 `) n2 |9 ]( e QQ图片20160328181020.png / k" r9 Y9 Q, q: x2 ~
7 m0 ~- D! v3 m
论坛上提示在这个窗口的另一个界面要选择copy的选项,我的是默认选择的,就不贴图了
% c9 M) D; A, I: V
: Y% W* Z  a1 d& Y然后软件会提示 open project,点击它。8 O0 r( A* ~" J: u0 l

/ U5 t+ P& C% E; c0 e3 _6 g2 u9 [这样就会进入keil编译器中,要想实现功能我们需要在mian.c里面添加一些代码
% U4 }2 X" r9 N! L! D) p定义头文件的位置,加一行定义,红色部分为添加内容5 i8 f! x6 }( V% }; _% o
) g& G' L$ a: d$ Q9 ?0 N
#include "stm32l0xx_hal.h", |" O7 c' p7 Q/ Z

4 h' W  x9 C$ Y$ |1 v  t/* USER CODE BEGIN Includes */' ?8 t, J$ A  x- y
#include "stdio.h"9 w, |2 U: ?+ ]$ b, P3 C# C
/* USER CODE END Includes */
  u0 _8 G: P# G3 e3 j" P: d8 Q# Y2 Q9 g- R4 i/ P" B- ]( `& v
在稍微靠下的Private variables位置,添加一段( L& ]* e8 v/ V) M
其中要注意的是 HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);的huart2,它随UART_HandleTypeDef huart2;的定义; I2 z9 }7 ]" V2 F
( F; E; B0 `$ D! v+ W0 v0 X

2 Y9 @: l- k7 n+ zUART_HandleTypeDef huart2;% [7 X% k$ q+ C1 Q

( e0 ^9 t- l$ ~0 e6 N. B/* USER CODE BEGIN PV */: E6 V' H9 E9 X$ _2 i; W
/* Private variables ---------------------------------------------------------*/
) w4 p" T# ]6 n9 H5 T# U#ifdef __GNUC__
9 e& _% H0 O+ p' f) Z* C#define PUTCHAR_PROTOTYPE int __io_putchar(int ch)
: i7 V2 j& d( @/ |6 k#else! C9 m0 S5 P' v
#define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)
; G, W$ M! R; ]3 H  }# }6 c#endif // __GNUC__ //: f9 z7 ^/ ~. k+ V* O$ [
1 f3 ?7 C" @4 j4 e! ]# y* v5 p
, m9 u2 M- b% x3 ~& M
PUTCHAR_PROTOTYPE
# c3 f; A8 N) m. j{
7 ?& J* D. F8 I' R. Q! }HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);9 K# H, p. Y3 M: F0 a) ~  I
return ch;
) Y" ^0 q) F7 D+ H}' f$ o: P5 j" J2 f/ K: F# a( ~+ q
/* USER CODE END PV */. Z' L: }- D# {9 ]# ]) E: |" X
5 A7 ~" N9 Z4 y3 T3 s
最后在main函数中3 b: e, I. @9 q7 b( J( g9 f. P* U

  b  s% f* p& w9 |2 a  /* USER CODE BEGIN 3 */
" U. c1 J, z% n5 {) U* [ while (1); {3 t# e3 s& H& |8 W4 X$ s+ o
{
. s$ }4 Y+ u+ B* ?! xprintf("hello world\r\n");        
3 @! W4 w* c; F6 @% v* {4 zHAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_SET);$ ~* s( f+ V* a/ l+ A6 |
HAL_Delay(500);; V; r. j3 {/ M3 K4 j5 A. `
HAL_GPIO_WritePin(GPIOA, GPIO_PIN_5, GPIO_PIN_RESET);
; s( t& x- f( W% w0 |HAL_Delay(500);
  J3 V$ ]) R, o  S/ v* q2 F }5 ^. T8 B- s1 ]! G( J
  }
8 H8 z1 p- W+ v- y  /* USER CODE END 3 */4 M) U- D9 P9 a! N' a
0 m- X& d- o- X
这样代码就改完了,编译,运行& t$ [- `& s/ ]
串口就会打印
+ J* `. I$ h# [' O  p' n+ a7 Mhello world
# ?2 V+ w' a8 r# r, t" L& l( e' o: g7 M! k' [8 j* D
完了
5 z. C! f$ b; S- i( U9 Y- ^: t' p" p- ^3 r! d

+ {$ L" ^- F3 r1 p7 w8 y
9 q' s# i( b* f0 O/ w# E/ n5 h
赞 收藏 1 评论5 发布时间:2016-3-28 18:33

举报

5个回答
slotg 回答时间:2016-3-28 19:31:42
不错,感谢楼主的教程。
hello! 回答时间:2016-3-28 19:31:56
支持一下
沐紫 回答时间:2016-3-29 08:46:20
谢谢~
zhangdaijin 回答时间:2016-3-29 12:36:04
不错的分享
disheng4688 回答时间:2016-3-29 12:42:38
学习,谢谢分享

所属标签

相似技术帖

官网相关资源

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