|
本帖最后由 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软件,尝试了论坛上的一两个例程。 0 w* h+ A' W, Z2 t 用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
配置串口和led: 由于我们这里选择的是开发板,所以软件已经自动给我们配置好了led的参数 只需要配置串口就可以了,NUCLEO-l053上面的串口连接的是PA2,PA3属于USART2控制,所以如图配置
其他的就不用设置了, 使用的默认的即可 另外修改波特率的地方在这里/ U; o& Z& \/ b6 s# V; w
然后产生代码就可以了' n7 V. L6 w1 d( Y 给工程写个名字 8 H. @# z- L, b5 L+ r 自定义一个路径: i* ~# f# { @! Y* ~ 选择编译器1 e3 s. j; r: j4 R0 S+ ^3 ~0 u : S7 _4 Q& y" H- B# _ 其他默认
7 m0 ~- D! v3 m 论坛上提示在这个窗口的另一个界面要选择copy的选项,我的是默认选择的,就不贴图了 然后软件会提示 open project,点击它。8 O0 r( A* ~" J: u0 l 这样就会进入keil编译器中,要想实现功能我们需要在mian.c里面添加一些代码 定义头文件的位置,加一行定义,红色部分为添加内容5 i8 f! x6 }( V% }; _% o ) g& G' L$ a: d$ Q9 ?0 N #include "stm32l0xx_hal.h", |" O7 c' p7 Q/ Z /* 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 */ 9 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 UART_HandleTypeDef huart2;% [7 X% k$ q+ C1 Q /* USER CODE BEGIN PV */: E6 V' H9 E9 X$ _2 i; W /* Private variables ---------------------------------------------------------*/ #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else! C9 m0 S5 P' v #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #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 { HAL_UART_Transmit(&huart2 , (uint8_t *)&ch, 1, 0xFFFF);9 K# H, p. Y3 M: F0 a) ~ I return ch; }' 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 /* USER CODE BEGIN 3 */ while (1); {3 t# e3 s& H& |8 W4 X$ s+ o { printf("hello world\r\n"); HAL_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); HAL_Delay(500); }5 ^. T8 B- s1 ]! G( J } /* USER CODE END 3 */4 M) U- D9 P9 a! N' a 0 m- X& d- o- X 这样代码就改完了,编译,运行& t$ [- `& s/ ] 串口就会打印 hello world ( e' o: g7 M! k' [8 j* D 完了 : t' p" p- ^3 r! d |
| 不错,感谢楼主的教程。 |
支持一下 |
| 谢谢~ |
不错的分享 |
| 学习,谢谢分享 |
【STM32H5 评测】ADC 电压表
【STM32H5 评测】基础硬件加密与随机数性能 - STM32H5E5实测硬件AES加解密、HASH运算、TRNG真随机数输出速率与稳定性
【STM32H5 评测】NUCLEO-H5E5ZJ 使用 TrustZone 安全分区系统实践测试
【STM32H5 评测】CPU核心性能 - STM32H5E5跑 RTOS,观察任务切换速度、中断响应快慢
【STM32H5 评测】介绍、环境搭建、工程测试
#双节活动 1.在CubeMX中引用touchGFX出现的问题与解决
如何将STM32CubeMX生成的CMake工程导入STM32CubeIDE
【 逢7发帖赢大礼】1、利用CubeMX生成正点原子H7R7开发板的STM32CubeIDE工程
STM32CubeCLT 1.22.0新版本发布
【下载问题解决】关于ST官网下载软件问题解决
微信公众号
手机版