搜索
bottom↓
回复: 16

刚刚踩到地雷了,430的串口缓冲区,唉,发出来给大家分享1下

[复制链接]

出0入12汤圆

发表于 2012-7-17 17:51:13 | 显示全部楼层 |阅读模式
为了让后人不再踩到地雷,特立此贴.
主MCU是msp430f5310,做1个字库,用的flash是串行的sst25vf016b.这个原先在stm32c8t6上很成功的烧写过的,结果在430上折腾1天,都是失败,现象就是,电脑串口发送数据给430,430无响应.代码原先是stm32上移植的,折腾了1天,终于发现,唉.....怨念啊.....
stm32c8t6的RAM很大,所以我电脑1次发送4096字节给MCU,然后MCU1次写入sst25vf1个扇区,正好4096字节.
msp430是不可以的,因为1次发送4096字节给他,它就死翘翘了,计数到1938左右就挂了,无法1次收取这么大的数据.很奇怪,我看手册上,F5310可是有6KB的RAM的呀.程序本身还用不到1KRAM,串口接收缓冲4K,应该是可以的,IAR编译也没报错.....
结果就是,把4096改成1024,每次电脑发1K数据,然后写FLASH,然后继续发.........
怨念啊.......

阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

发表于 2012-7-17 19:09:38 | 显示全部楼层
得找找根本原因啊,能把工程共享一下么,我想了解一下。

出0入0汤圆

发表于 2012-7-17 19:20:30 | 显示全部楼层
本帖最后由 armku 于 2012-7-17 22:23 编辑

学习了,8位单片机和32位单片机还是有很多的区别的。
改正错误,MSP430为16位单片机

出0入0汤圆

发表于 2012-7-17 19:37:07 来自手机 | 显示全部楼层
看门狗复位了
来自:amoBBS 阿莫电子论坛 Android客户端

出0入0汤圆

发表于 2012-7-17 19:38:00 | 显示全部楼层
armku 发表于 2012-7-17 19:20
学习了,8位单片机和32位单片机还是有很多的区别的。

膜拜高手,430什么时候改规格了?

出0入0汤圆

发表于 2012-7-17 19:41:59 | 显示全部楼层
如果我没有记错的话,这和ram没有什么关系,我6k用5k都没有问题,应该是连续发数据没弄好引起的!

出0入0汤圆

发表于 2012-7-17 19:58:38 | 显示全部楼层
对,应该和RAM没关系,查程序,估计没移植正确

出0入12汤圆

 楼主| 发表于 2012-7-17 20:27:29 | 显示全部楼层
项目里面的,这个大家可以试试,用电脑,1次发4096字节给430看看,430就是无法接收完全的.很简单的1个东东

出0入0汤圆

发表于 2012-7-17 20:30:19 | 显示全部楼层
armku 发表于 2012-7-17 19:20
学习了,8位单片机和32位单片机还是有很多的区别的。

430是16位的!

出0入0汤圆

发表于 2012-7-17 20:31:02 | 显示全部楼层
skynet 发表于 2012-7-17 20:27
项目里面的,这个大家可以试试,用电脑,1次发4096字节给430看看,430就是无法接收完全的.很简单的1个东东 ...

这个不一定是430的问题,应该是ram大小的关系,可能程序没搞好吧

出0入0汤圆

发表于 2012-7-18 09:51:10 | 显示全部楼层
楼主啊,这肯定是自己的问题,还没找到问题的原因。
当然工程不是搞研究,允许不求甚解,但是,作为高级工程师的基本素质来说,还是自己好好看看分析问题吧。

出0入0汤圆

发表于 2012-7-18 15:30:10 | 显示全部楼层
jlhgold 发表于 2012-7-17 19:41
如果我没有记错的话,这和ram没有什么关系,我6k用5k都没有问题,应该是连续发数据没弄好引起的! ...

是的,这位大侠说得对

出0入0汤圆

发表于 2012-7-19 10:04:44 | 显示全部楼层
我觉得可以肯定和RAM没有关系,因为RAM肯定是够用的。还是程序的问题。另外需要注意的一点是,430的波特率如果设的太高,TRX的误码率过大的话,一次性连续发送字节过多,会收到错误字节的。比如如果波特率对应的误码率是1%的话,理论上发送100个字节就有可能有一个字节出错。所以你也可以试试把波特率调低点再看一下。另外如果波特率太高,而MCU处理速度太慢的话,也很有可能接收中断都来不及处理收到的数据,结果430的两字节接收缓冲就over run了。

出0入12汤圆

 楼主| 发表于 2012-7-19 10:34:08 | 显示全部楼层
多谢楼上的兄弟,我试了确实是,我把波特率设置为9600,接收发送几十万字节都正常,如果是用19200,就会出错.
唉,看来这个430的通讯波特率,如果是N万字节通讯还是要用0无码的波特率啊

出0入0汤圆

发表于 2012-7-19 11:08:45 | 显示全部楼层
jetlib 发表于 2012-7-19 10:04
我觉得可以肯定和RAM没有关系,因为RAM肯定是够用的。还是程序的问题。另外需要注意的一点是,430的波特率 ...

向高手致敬

出0入0汤圆

发表于 2012-7-19 11:30:23 | 显示全部楼层
懒洋洋,搞啥米430呀,贵,又麻烦,要省电STM32L呀.

出0入12汤圆

 楼主| 发表于 2012-7-19 11:42:05 | 显示全部楼层
linghu2 发表于 2012-7-19 11:30
懒洋洋,搞啥米430呀,贵,又麻烦,要省电STM32L呀.

唉,狐狸呀,没办法呀,上个小玩意,电池供电,同时要用RTC唤醒,stm32爽是爽,但是功耗和那个蛋疼万恶的RTC,唉,不说也罢
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-28 06:30

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表