亲爱的对话框支持,
flash读写程序我需要非常紧急的帮助。
我用DA14583单片机设计了一个装置,我写了代码,在按钮上按下我正在切换LED灯泡组。
为了操作LED灯泡,创建了一个数据包(数据包包括灯泡的数量和地址),从blscaner分配到自定义设备。
下一件事在固件中,我读取数据包从应用程序发送,我parsh它作为我的应用程序和存储值/数据到flash(存储数据是完美的发生)。
我从闪存读取数据时,每当系统电源休息时(当设备启动)读取也完美地发生。
我面临的问题,而焚烧。hex文件的设备,
我已经创建了我的项目的。hex文件,并使用智能代码片段工具,烧录固件到自定义设备。在成功编程设备之后,我需要休息设备来发布和初始化,同时这样做,如果我休息设备后燃烧。hex文件,我从闪存缓冲区获得“0xFF”,如果我再次(第二次)休息设备,我从闪存缓冲区获得我的默认状态。
我不明白为什么设备需要两次休息从闪存缓冲区读取实际数据?
或者我遵循错误的方法从falsh获得默认数据。
我急需解决这个问题,请帮我解决。
感谢和问候
罗希特
设备:
嗨Rajapurerohit,
我来问你几个问题,以便了解你所取得的成绩。你烧毁了SPI闪存与你的固件使用flash程序员的SmartSnippets工具箱,不是吗?当你下载了你的代码并按下重置键后,你能确定你的设备广告是否正确吗?您可以使用工具箱的功率分析器进行测试。你是否基于我们的SDK示例?如果我能够正确理解,在引导之后,你想从SPI flash读取一些数据,是正确的吗?因为您有一个自定义板和自定义应用程序代码,它将非常有帮助,为我提供一些额外的输入或截图,以复制您的问题。
谢谢,PM_Dialog
你好PM_Dialog,
使用SmartSnippets工具箱中的flash程序员,您可以使用您的固件烧坏SPI flash -是的,
在你下载你的代码并按下重置后,你可以确保你的设备是正确的广告-是的,设备广告
在启动之后,您想从SPI flash读取一些数据,这是正确的吗?——是的,
在我的固件user_custs1_imple文件中,我写了一个函数,我存储数据/从闪存读取/。请找到我的文件附件flash配置和flash读/写读/写功能写。
存储数据到闪存缓冲区功能-
1.空白StorePIRSettings(无效);
2.空白CombineBDAwithBrightness(无效);
从flash函数读取数据-
1.空白ReadPIRSettings(无效);
2.空白ui8UpdateLocalDatabase(无效);
我存储这些数据到flash [void StoreintoFlash(void)]时,从应用程序断开连接,从flash [void ReadfromFlash(void)]读取数据时,设备启动(即。,在user_setup文件void peri_init (void);功能)。
因此,在。hex文件烧录后,当reset按下,我将在缓冲区中获得(255)0xFF,如果再次重置设备,我将获得0x00。在第二次重置后,我的设备工作得很好,数据存储和读取也很好。
我想知道为什么这个装置需要休息两次才能正常工作。请帮助我哪里做错了,或者我是否遵循了错误的步骤来调试。
感谢和问候
罗希特
嗨Rajapurerohit,
我猜你在user_app_disconnect中调用StoreintoFlash(),不是吗?所以,在断开连接之后。请检查一下您想要从SmartSnippets工具箱的flash程序员写入存储数据的地址好吗?你能看到你只看到0xFF的预期数据吗?如果您看到0xFF,这意味着该值还没有写入。此外,正如我能够从您发布的代码片段中看到的,您在ReadfromFlash()和StoreintoFlash()中初始化并启用SPI flash,但我不能看到SPI初始化。你能检查一下SDK的spi_flash外设示例的spi_flash_peripheral_init()函数吗?你是照着这个例子做参考的吗?
谢谢,PM_Dialog
你好PM_Dialog,
是的,在断开连接后,我正在将数据存储到flash中,但我不理解您提到的步骤-请检查您想从SmartSnippets工具箱的flash程序员中写入存储数据的地址。你能看到你只看到0xFF的预期数据吗?]。
你能告诉我以上建议的步骤吗?
是的,我遵循了spi_flash()代码,我已经做了我所理解的更改,我在初始化步骤中做错了什么吗?
在另一个项目中,我面临着flash的不同问题,相同的程序我已经遵循读/写我正在为目前的项目。然而,
在此项目(另一个项目)中,设备停止发布广告。
感谢和问候
罗希特Rajapure
嗨Rajapurerohit,
我的意思是从智能片段工具箱的flash程序员中读取SPI flash。因此,在断开连接后,不需要重置您的电路板,您就可以检查您的数据是否已成功存储。关于你的第二个问题,你能在调试模式下运行你的代码吗?我下载固件到系统内存,热附加调试器和检查代码是否卡在某处。
谢谢,PM_Dialog
嗨PM_Dialog,
谢谢你的快速回复,
我已经做了以下步骤,为第一个项目- - - - - -
1.首先,刻录。hex文件并重置设备
2.其次,我再次按下SmartSnippet工具上的连接选项并单击Read选项,看到7000以上的地址数据是0xFF[没有数据写入]
3.第三,我分配来自App (BLE Scanner)的数据,并重复步骤2,能够看到字段7000向前地址的数据
4.从USB断开设备(断电),再次使用USB重新连接(上电),再次重复步骤2,我能够看到数据。
这是我所遵循的正确步骤吗?
关于我第二个项目的问题
在调试模式下,代码不会被卡在它工作的任何地方。我把代码保存了半个小时。这款设备的广告效果仍然很好。
只有在烧录。hex文件并从App分配数据后,如果我断开设备(USB)并再次上电设备(USB),我才能看到我的设备广告。
我的第一个项目,我认为我们可以解决它,但第二个项目,我需要紧急帮助,这是一个重大问题。
所以请帮忙解决我第二个项目广告的问题。
感谢和问候
罗希特
嗨Rajapurerohit,
关于您的第一个项目,数据似乎没有写入SPI Flash。我将再次检查您的代码片段。
关于您的第二个项目,我认为您已经用您的固件烧坏了SPI Flash,并从那里引导设备。断开连接后,如果你重置你的公告板,你还能再做广告吗?
谢谢,PM_DIalog
你好PM_Dialog,
很抱歉回复晚了。
第一个项目:
这就解决了,在断电和电源循环后,我的设备是广告正常没有任何问题。
对于第一个项目,问题在于通知功能。由于通知功能有多个副本,设备上下电循环后没有通告。现在问题解决了,设备也开始工作了。
在第二个项目中:
是的,在。hex文件烧录并重置检测后,设备正在发布广告。
现在对于两个项目,我都面临着相同的问题,其中重置检测闪存字段是0xFF,第二次重置内存字段是0x00。
感谢和问候
罗希特
嗨Rajapurerohit,
抱歉耽搁了,但我无法复制您的问题。向flash写入数据时可能会出错。
谢谢,PM_Dialog