打印

更新III:Firmware Lib在EK_STM32F上的学习体会(FLASH/GPIO)

[复制链接]
5276|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
barboon|  楼主 | 2008-2-17 20:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
继续,上三回说到:

通过Firmware Lib在EK_STM32F上的学习体会

更新:Firmware Lib在EK_STM32F上的学习体会(CAN/Cortex/Debug)

更新II:Firmware Lib在EK_STM32F上的学习体会(DMA/EXTI)

-----------------------FLASH分隔线-----------------------------------

Exemple 1

本例展示了如何对STM32的FLASH写入数据。

在RESET以后,FLASH存储器的写/擦控制器(Flash memory Program/Erase Controller)是被锁住的,为了能够写入数据,首先要求对控制器解锁(FLASH_Unlock())。

在写入数据前,程序首先擦除所有要编辑的页面。擦除程序首先计算需要的页面数目,然后通过不断调用FLASH_ErasePage函数进行逐页擦除。之后,程序不断调用FLASH_ProgramWord函数对FLASH写入数据。待整个过程完成以后,检查FLASH中的数据是否已被正确写入,检查结果放在变量MemoryProgramStatus中。



Exemple 1

本例展示了如何开启/关闭STM32 FLASH存储器的写保护功能。

打开写保护功能:
在程序中,取消“#define WriteProtection_Enable”前的注释符号,即可打开写保护功能。想要对一系列页面进行写保护的话,用户可以调用FLASH_EnableWriteProtection函数,通过设置该函数的参数,我们可以对任意页面进行写保护。在本例中,我们想要对24 — 31这八个页面进行保护,因此,参数为"FLASH_WRProt_Pages24to27 | FLASH_WRProt_Pages28to31"。

为了对载入新的option byte 值,需要对系统进行复位,因此,我们调用函数 NVIC_GenerateSystemReset()。

关闭写保护功能:
在程序中,取消“##define WriteProtection_Disable”前的注释符号,即可关闭写保护功能。为了关闭写保护,用户必须擦除小信息模块(small information block)。此操作可以通过调用函数FLASH_EraseOptionBytes来实现。

同样的,为了对载入新的option byte 值,需要对系统进行复位,因此,我们调用函数 NVIC_GenerateSystemReset()。

在本例中,程序将对被保护页面进行一次擦-写的操作,并在最后检查操作的完成情况,并把检查结果放在变量MemoryProgramStatus中。显然,如果打开了写保护功能,那么结果将是FAILED,如果没有,结果将是PASSED。


-----------------------GPIO分隔线-----------------------------------

Exemple 1

本例展示了如何通过设置GPIO BSRR寄存器(Port bit set/reset registe)和GPIO BRR寄存器 (Port bit reset register)来翻转IO的状态。

通过设置这两个寄存器,我们可以利用单比特操作(single atomic write access)来改变一个或者几个IO端口的状态。

这个例子原本应用于STM32评估板(STM3210B-EVAL),为了使本例能在EKSTM32F上运行,我们应当把使用端口PC.06 – PC.09改为使用PC.04 – PC.07。


Exemple 2

本例展示了如何把JTAG专用管脚设置为标准的GPIO。

首先,关闭SWJ-DP,把SWJ-DP管脚设置为标准的push-pull输出。然后,循环地改变PA.13(JTMS/SWDAT), PA.14(JTCK/SWCLK), PA.15(JTDI), PB.03(JTDO) 和PB.04(JTRST)这五个管脚的状态。使与之相连的LED闪耀。在EKSTM32F板上,不存在这样的五个LED,要观察效果的话,需要自己连上去。

注意,一旦JTAG管脚被用作它用,将无法再使用debug工具。为了避免这个问题,程序将检查PB.09上的数据,它与一个按钮相连,当输入为低电平时,JTAG专用管脚被设为标准的IO。当输入为高电平时,这些管脚仍然用作JTAG。

在EKSTM32F板上,改检测PB.09为PD.04。
注意,运行本例程必须慎重,可以参考下面这个贴子:

对于生手来说,ST提供的GPIO这个sample够害人的

打包下载:


相关链接:https://bbs.21ic.com/upfiles/img/20082/2008217201345809.rar
沙发
hotpower| | 2008-2-17 21:35 | 只看该作者

学习之中~~~谢谢~~~

使用特权

评论回复
板凳
eliucheng| | 2008-4-28 09:45 | 只看该作者

无法下载

怎么办哦!

使用特权

评论回复
地板
香水城| | 2008-4-28 18:05 | 只看该作者

STM32固件库中的例子

使用特权

评论回复
5
nkguodalu| | 2008-4-29 10:40 | 只看该作者

hotpower大叔,到处都是你的身影啊

还有什么片子是你没玩过的?太强了,倒塌膜拜一下,呵呵.

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

143

主题

223

帖子

0

粉丝