STM32F030 有關FLASH寫入 發生錯誤的問題

2019-12-13 18:24发布

本帖最后由 陳聖文 于 2019-2-23 17:07 编辑

小弟在使用兩顆MCU互傳資料的程式
傳輸本身正常
但是要大量寫入FLASH時卻變成異常
請各位幫我檢查是否有錯誤
給小弟意點建議

按照我的設計
主機傳指令給從機後
從機會在時間內傳送其要求的資料(1024 bytes的資料量)
然後主機成功接收資料後就會存進FLASH

目前畫面可以看到
主控的畫面(P0)的部分程式
是抓取來自從機的USART傳過來的資料
然後有開始接收資料後(顯示於P0的最右側的接收暫存器)
跳入從機的畫面(P1)的程式碼
--以上都正常,不正常的在下面--
  等待接收完畢後一次2bytes存放進主機的FLASH
  但是有機會變成一堆0x0000
  單步執行不會出現
    連續執行直到檢測到0x0000
    暫停後  再在執行會恢復正常
  如果不檢測0x0000
    則會一路0x0000到底(如圖P0所示)


以下是主控的畫面(P0)
S.PNG (105.65 KB, 下载次数: 0) 下载附件 從機 2019-2-23 16:22 上传


如果我找到問題也會在此寫上
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
20条回答
wye11083
1楼-- · 2019-12-13 19:50
flash写入需要数个ms,你加延时和状态检测了没?
陳聖文
2楼-- · 2019-12-13 22:42
 精彩回答 2  元偷偷看……
陳聖文
3楼-- · 2019-12-14 04:27
wye11083 发表于 2019-2-23 17:11
flash写入需要数个ms,你加延时和状态检测了没?

檢測到不忙碌後壞再延遲60uS
問題還再

DATASHEET上面寫說
寫入時間約是53.5uS
wye11083
4楼-- · 2019-12-14 09:07
陳聖文 发表于 2019-2-23 17:31
檢測到不忙碌後壞再延遲60uS
問題還再

那样你把你的写入地址打印出来,专查写入地址吧。我经常遇到SPI被烧成砖的情况(我做FPGA),基本上分析都是写错SPI地址了。这个可能性非常大。
陳聖文
5楼-- · 2019-12-14 10:36
wye11083 发表于 2019-2-23 17:38
那样你把你的写入地址打印出来,专查写入地址吧。我经常遇到SPI被烧成砖的情况(我做FPGA),基本上分析 ...

加上用USART回傳資料
結果就正常了@@
莫非是要等更久?
陳聖文
6楼-- · 2019-12-14 12:46
實測...
延遲150uS即可
不符合規格書@@

一周热门 更多>