闪存控制器这个应该比较简单的。
库函数做的好,版主讲的也比较明白。特别是那个例程也很简单。
首先这个要根据选择的芯片具体型号确定内存空间,然后通过宏定义确定个开头,还有段长度,或者说是块长度。
关于这个东西都是要指针开头的,我记得电脑上的C语言编程,关于存储文件读写的,也是个*FILE 指针操作。
uint32_t *flashPtr = (uint32_t *)SEGSTART;这里就是这句打头的,获取开头的地址传递给指针flashPtr.
之后一如既往的关闭看门狗。
下面就是要配置时钟了,因为后面要配置闪存的时钟。所以这里肯定要开头配置系统时钟,默认选择内置电阻模式就行了,这个直接就是16.384MHz.轻松获取标准时钟信号就靠它了。
配置完时钟初始化信号,当然不分频,默认保持16.384,
下面就可以配置闪存时钟了,这里选择了390KHz,要填入具体的数字,1K=1024B ,所以这里填入了390095,第二个参数就是系统时钟,刚才没有分频所以还是16384000,第三个直接FLASHCTL_MCLK.
解锁信息存储区,教程讲的明白,要操作必须解锁。之后通过填充函数,把前面定义的常数Value通过指针flashPtr,按照4个一队方式写入到指定的地址头。之后锁定信息区。
简单易懂。根据自己需要还可以写入某个地址的东西,这个需要传递过去地址,不是值。
|