|
本帖最后由 晓枫VS枯叶 于 2014-12-14 22:59 编辑 最近刚得到一块F072的NUCLEO板,闲来无事测试了F072的SPI,基于mbed平台的离线编程,C++编程相比C简单很多,和HAL库或者标准库相比,mbed操作相对简单,但是由于加入了C++,库读起来就没那么简单了!下面是具体操作过程:1.在github上下载mbed的库,直接百度搜索mbed github就能看到网址,mbed的工程师会不定期的在github上更新mbed库,下载速度有点慢(ps:由于国内网络原因,我把mbed上传到百度云,地址会在帖子末尾贴出来)。 2.mbed库下载完了之后可以浏览下库的结构如下图所示,大部分基本的库文件都在mbed\libraries\mbed目录下,完整的库还包含usb、以太网等等的库
由于我们只使用SPI所以不必管其他的库,先新建一个文件夹(LCD5110),将mbed\libraries\mbed这个文件夹全部拷贝到新建的文件夹(LCD5110)下。 3.由于我使用的是f072所以可以删除一些无关的文件,主要在mbed\libraries\mbed\targets\cmsis和mbed\libraries\mbed\targets\hal目录下,cmsis目录要删除的东西如下图所示:(删除选中的)
hal目录下删除的东西如下图所示:(删除选中的)
4.在第2步新建的目录(LCD5110)下再新建一个目录(user),放自己写的main函数文件及IAR工程,新建IAR工程目录(自定名字(我的为IAR,位于user目录下)),建好后大致目录与下图所示:
5.新建IAR工程,在IAR工程下新建几个group如下图所示,名字自定(我的和上面的目录名类似),建好后将对应的目录.cpp、.c、.h、.s文件加入到group中(注意那个startup_stm32f072xb.s位于mbed\targets\cmsis\TARGET_STM\TARGET_STM32F0\TARGET_NUCLEO_F072RB\TOOLCHAIN_IAR目录下),可以设置选择添加指定文件类型,设置如下图所示:
6.添加完成上述mbed库文件后,自己在user文件夹下新建一个xxx.cpp(我的为main.cpp),然后在里面写一段main函数代码(代码如下所示)并加入到IAR的user组中: #include “mbed.h” int main(void) { } 7.更改IAR的相关设置,具体设置如图所示:(网页排版原因图调到了最后面)
8.设置完成后就可以编译了,编译大概40s(根据每个人的电脑不同,时间可能不一样),编译过程中会出现很多警告,编译完成如下图所示出现了100多个警告,这些警告大多与编译器的识别文件有关,还有一些是强制转换出现的警告,不妨碍程序运行。
想要不显示这些警告可以设置过滤功能如下图所示:
再次编译会发现警告全无:
9.测试一下工程是否正确可以写一个简单的闪烁LED的程序 #include “mbed.h” DigitalOut led(LED1); uint32_t ti; int main(void) { while(1) { ti=HAL_RCC_GetSysClockFreq(); led=!led; wait(1); } } 编译一下进入调试,选择view菜单下的live watch,将ti加入live watch可以看到nucleo板的运行主频(我的加了HSE8 MHz,ti=48MHz,使用hsi的未测试)。另外板子上的led会闪烁,说明工程是完整的。 10.加入SPI的代码(由于时间原因,直接将源码贴出),SPI代码主要位于lcd.cpp和main.cpp,另外还有几个lcd5110的字库.h文件 mbed库的百度云地址:https://pan.baidu.com/s/1bn0EXqf mbed库SPI操作lcd5110源码:
LCD5110.zip
(1.36 MB, 下载次数: 104)
|
谢谢分享哦 |
好贴必须顶起 |
| 很详细啊,好贴必须顶起。 |
|
用mbed的还是太少,好贴,学习了 |
STM32
超强工具——STM32CubeMX 你会用吗?
集结出发! STM32全国研讨会系列之一:ST智能门铃中国首秀
关于STM32启动文件的几个小问题
【银杏科技ARM+FPGA双核心应用】STM32H7系列35——USB_VCP_FS
【银杏科技ARM+FPGA双核心应用】STM32H7系列28——USB_HID
粉丝分享 | 图说CRC原理应用及STM32硬件CRC外设
STM32L151进入低功耗,并由RTC唤醒的故事
[转]stm32控制NFC模块(PN532)源码(P2P,模拟卡,读写卡等
STM32G070RB+LVGL移植
微信公众号
手机版