感谢新会员注册赢好礼活动所提供的NUCLEO_F767ZI开发板,它与先前得到的NUCLEO_F412ZG开发板实在有些似曾相识的感觉,果然两厢一对比其基本布局几乎丝毫不差,详见图1的对比图。那两者的区别在哪呢?从直观上看,最主要的区别就是将网络通讯器件配全了,在F412上则完全是空出状态。当然,最关键的区别还是在MCU上,下面就看看这方面的对比。
图1 F412与F767的比较
表1 MCU对比表 对NUCLEO_F767ZI开发板有了初步了解后,下面看一下加电后的初始效果。 首先,用Micro-AB 连接线来连接板上的Micro-AB 连接座和电脑的USB口。上电后,会见到通讯指示灯LD4、电源指示灯LD6及红色的LD3被点亮。在按下用户键的情况下,会依序点亮红、绿、蓝LED灯,并伴有频率的变化,其效果如图2所示。 图2 点亮蓝色LED
其实若观察一下电脑,会发现多出了一个名为“NODE_F767ZI”的盘符,如图3所示。此外,若以设备管理器来观察,还会见到一个虚拟出的串口,如图4所示。 图3 增添NODE_F767ZI盘符
图4 虚拟串口
有了这些资源,又如何来用F767开发板进行程序的编译与下载呢? 对于ST的老用户,你首先要在原有开发环境的基础上升级开发环境。具体到使用KEIL的开发者,则需要下载安装包Keil.STM32F7xx_DFP.2.6.0.pack,网址为: http://www.keil.com/dd2/Pack/ 图5 添加F767芯片列表
有了前面的准备,为了便于设计与开发,还应收集一份该开发板的原理图。有意思的是F767开发板的原理图也与F412开发板基本相同。至于3个LED指示灯及USER用户键的线路连接,则是完全一样的,详见图6所示。 图6 LED及用户键连接线路
为了便于验证编译与下载功能,收集好的例程资源是十分必要的,建议采用ALIENTEK 阿波罗STM32F767开发板的例程,尽管在硬件上存在差别,但借助原理图的帮助稍加修改即可使用。 下面给出一个以跑马灯程序修改的闪灯程序,其代码如下: void LED_Init(void)
{
GPIO_InitTypeDef GPIO_Initure;
__HAL_RCC_GPIOB_CLK_ENABLE();
GPIO_Initure.Pin=GPIO_PIN_0|GPIO_PIN_7|GPIO_PIN_14;
GPIO_Initure.Mode=GPIO_MODE_OUTPUT_PP;
GPIO_Initure.Pull=GPIO_PULLUP;
GPIO_Initure.Speed=GPIO_SPEED_HIGH;
HAL_GPIO_Init(GPIOB,&GPIO_Initure);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);
}
int main(void)
{
Cache_Enable();
HAL_Init();
Stm32_Clock_Init(432,25,2,9);
delay_init(216);
uart_init(115200);
LED_Init();
while(1)
{
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_RESET);//LED r
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_RESET); //LED b
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_RESET); //LED g
delay_ms(500); //延时500ms
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_14,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_7,GPIO_PIN_SET);
HAL_GPIO_WritePin(GPIOB,GPIO_PIN_0,GPIO_PIN_ESET);
delay_ms(500); //延时500ms
}
}
为了能顺利地进行调试和下载,应对下载器类型和下载算法加以选择和设置。其中设置下载器类型的界面如图8所示,下载算法的选择如图9所示。经下载,可看到LED灯在闪烁。 图8 设置调试器类型
图9 选取下载算法
|