你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

在nanoFramework中访问STM32备份寄存器

[复制链接]
点点&木木 发布时间:2018-11-19 21:48

STM32的硬件条件下,很容易实现Stm32库的保存和读取Stm32备份寄存器。如果您需要在重新引导之间持久保存数据,那简直就是为你设计的。
1.jpg


项目中使用的东西

硬件组件:

         STMicroelectronicsSTM32 Nucleo-144 Boards    *1

         nanoFramework VisualStudio extension

背景

有时候你的应用需要在重启之间保存数据。只是简单的数据收集。添加一个外部EEPROM并不是你想要做的事情。一堆额外的复杂,布线,更多的代码,板的真实状态和(如果这是一个商业项目)更多的成本到BOM

STM32 SoC有一个被称为备份内存的RAM区域,它由RTC电源插头供电,可以在重启后继续工作。这是一个完美的工具。

nanoFramework.HardwareStm32类库抽象了使用此内存所需的所有配置和复杂性。您只需将需要保存的值(支持许多本机类型,因此您应该找到所需的类型)扔给它即可。如果你已经将电源连接到Vbatt pin,那就是。

当需要时,返回到API并读取这些值。

代码:

示例应用程序写入STM32备份内存并读取

using System;

using System.Threading;

using nanoFramework.Hardware.Stm32;


namespace Stm32BackupMemory.TestApp

{

    public class Program

    {

        public static voidMain()

        {

           Console.WriteLine($"The backup memory has {BackupMemory.Size}bytes.");


            // write a bytearray

            uinttestBufferPosition = 5;


            byte[] testBuffer= new byte[] { 0xFA, 0xCE, 0xBE, 0xEF, 0xFA, 0xCE, 0xBE, 0xEF };

           BackupMemory.WriteBytes(testBufferPosition, testBuffer);


            // read back thebyte array

            byte[]readBackBuffer = new byte[testBuffer.Length];

           BackupMemory.ReadBytes(testBufferPosition, readBackBuffer);


           if(readBackBuffer.GetHashCode() != testBuffer.GetHashCode())

            {

               Console.WriteLine("Array read from backup memory is different thanwhat was written.");

            }

            else

            {

               Console.WriteLine("Buffer comparison check!");

            }


            // write an Int64

            uinttestInt64Position = 15;


            Int64 testInt64 =9876543210;

           BackupMemory.WriteInt64(testInt64Position, testInt64);


            if(BackupMemory.ReadInt64(testInt64Position) != testInt64)

            {

               Console.WriteLine("Int64 read from backup memory is different thanwhat was written.");

            }

            else

            {

               Console.WriteLine("Int64 comparison check!");

            }


           Thread.Sleep(Timeout.Infinite);

        }

    }

}


收藏 评论0 发布时间:2018-11-19 21:48

举报

0个回答

所属标签

STM32团队

意法半导体微控制器和微处理器拥有广泛的产品线,包含低成本的8位单片机和基于ARM® Cortex®-M0、M0+、M3、M4、M33、M7及A7内核并具备丰富外设选择的32位微控制器及微处理器


最新内容

相似分享

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
st-img 微信公众号
st-img 手机版