串口中断问题

klangkang 2010-07-06 04:29:12
我用串口接收数据来更新flash里面的内容。当我接收到一页的数据的写flash的时候,串口在接收到的数据就会丢失。我现在采取的方法是一次全部接收串口的数据。然后再进行写flash。但是如果数据量比较大的时候我就不可能一次接收所有的数据了。请问有什么好的办法能够解决这个问题?
...全文
119 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
shenshunxiao 2010-07-07
  • 打赏
  • 举报
回复
一个可以扩展存储器,另一个方法是加快单片机速度,还有一个就是接一个异步收发器缓存接收数据。
jldream110 2010-07-07
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 veron_04 的回复:]

定义两到三个足够大的数组,用来存储串口传来的数据,当一个数组满了的时候就写一次Flash,后面的数据就存入第二个数组,依次类推。
[/Quote]

2楼说的方法 比较合适
codesnail 2010-07-07
  • 打赏
  • 举报
回复
1.开辟一个合适大小的缓冲区,就如楼上所说循环队列(数组),维护一个写指针和读指针。关键的问题还是ram量不能太小,cpu速度不能太慢。
Linux_lee 2010-07-06
  • 打赏
  • 举报
回复
使用循环队列!前提是CPU不要太慢
wang0635 2010-07-06
  • 打赏
  • 举报
回复
可以加上串口的流量控制
告诉对方,写flash时不接收发来的数据
贝隆 2010-07-06
  • 打赏
  • 举报
回复
定义两到三个足够大的数组,用来存储串口传来的数据,当一个数组满了的时候就写一次Flash,后面的数据就存入第二个数组,依次类推。
lbing7 2010-07-06
  • 打赏
  • 举报
回复
巧妇难为无米之炊

没有足够的空间,那么自己扩出来

要不,收少一点,然后处理,再收

用应答回传机制

27,375

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 单片机/工控
社区管理员
  • 单片机/工控社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧