本帖最后由 xiaocui0475 于 2015-4-28 13:03 编辑
最近在学习 Cube ,用了一下,感觉不错,用起来很方便,So,现在把这大半天来做的几个例程跟大家分享一下。首先说下硬件环境: 手上一块 NUCLEO- F072的板子, 软件呢, 就是 Keil5.12 + CubeMX 啦, 这半天研究下来,总共实现了下面几个功能。
1.**长征第一步,就是点亮LED啦,
2.按键中断
3.串口打印+ 实现 printf 打印数据
当然时钟配置是必不可少的啦。由于板子上没有外部晶振,但是在板载的 ST LINK 上有一个 8M 的时钟源是接到 MCU 晶振引脚的,所以这里我使用的是与外部晶振一样的 8M 晶振(注意跳线一定要正确)。(简单的说就可以当做板子上焊了一个 8M 的晶振了)
时钟配置:
1,打开 CubeMX 软件(请关闭有道词典软件),选择 New Project--> 选择 STM32F072RB
2.左侧,先使能 RCC
3.点击 Clock Configuration 到时钟配置界面
4.选择 HSE 外部高速时钟, 调整 PLLMUL 系数, 通过这个图可以看出 系统时钟, 外设时钟 。。。 等等时钟的频率, 我配置完成后是这样的, 主频 48 M。
5.配置完成后, 回到 第一页, pinout 界面。
一、点亮 LED
按照NUCLEO 的原理图来看, 板子上唯一一个 LED 所对应的引脚是 PA5 , 并且当 PA5 引脚为高电平的时候 点亮 LED。 So 配置 PA5 为输出模式。
点击第三个选项卡: configuration 点击 GPIO ,配置 PA5 推挽输出, 无上下拉
OK 这样就可以生成代码了,起个名字,选择 MDK 5 注意路径最好不要包含中文, 否则会不会错我也说不好,
生成后主函数代码如下:
如果你要点亮 LED 那么就在主函数中添加 下面几句就可以啦,(我会上传完成工程的, So 这里看不太清楚不要急)
/* Infinite loop */
/* USER CODE BEGIN WHILE */
while (1)
{
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_SET);
HAL_Delay(nDelay);
HAL_GPIO_WritePin(GPIOA,GPIO_PIN_5,GPIO_PIN_RESET);
HAL_Delay(nDelay);
/* USER CODE END WHILE */
这样呢, LED 就会亮起来了,
今天精力有限, 老板又催着做事情了, 所以先写到这里吧, 改天再修改。 附件是完成的工程, LED 闪烁, 中断按键 改变闪烁频率, 串口2 打印输出数据。 由于等级低还是其他原因, 工程打包不能传, 那我就传个主函数, 和 CUBE 的工程文件吧。
PS : 广告一下, 买 ST 芯片哪家强? 中国代理找 世平! WPI 世平集团, ST 产品全线代理, 有需要购买 ST 芯片的尽管联系!!!
论坛私信我就 OK ,谢谢啦!
|