搜索
bottom↓
回复: 22

N76E003串口115200接收连续数据不完整怎么解决?

[复制链接]

出0入53汤圆

发表于 2018-6-23 09:28:44 | 显示全部楼层 |阅读模式
本帖最后由 zhcj66 于 2018-6-23 11:13 编辑

如题"N76E003串口波特率115200,接收连续数据不完整怎么解决?",

原先用的STM8S103可以一次接收10bit数据,不丢数据,然而因为涨价严重,不的不换方案

这些8bit的mcu也没有DMA真的接收数据很累啊,GD和ST的32bit的mcu电压都是最高3.3v的也没有个5v的,如果换这样的mcu还需要加LDO成本又上去了

难道N76E003芯片串口接收连续数据是,只能在发送每个字节上加延时了吗?

出0入0汤圆

发表于 2018-6-23 09:34:19 | 显示全部楼层
  新唐的东东真难用啊,N76E003不是Keil官方支持的芯片,装了驱动接仿真器之后一通乱跑,调试都没头绪了啊,也不知道是Nulink的问题还是windows10兼容性的问题!
  后面还有人在跟着催进度,伤不起啊!

出0入53汤圆

 楼主| 发表于 2018-6-23 09:40:46 | 显示全部楼层
coleyao 发表于 2018-6-23 09:34
新唐的东东真难用啊,N76E003不是Keil官方支持的芯片,装了驱动接仿真器之后一通乱跑,调试都没头绪了啊 ...

乱跑倒是还没有遇到,刚刚测试,串口打断点,发送一个数据,半天才中断,有点伤不起.

不知道这种8bit的mcu 除了发送数据中间加延时 还有什么好的办法没>?

出0入0汤圆

发表于 2018-6-23 10:42:04 | 显示全部楼层
我不知道你们为啥那么多问题,我几乎没啥问题,串口什么得,都妥妥得。。。多看看手册,按照官方资料来配置,一般情况都没事情!!!当然了要说没事情,也不对,就遇到了keil编译器对于C51个人优化后NC得算法,不太遵守C标准。。。其他得,目前没啥大问题,包括捕捉,adc等等!!!

出0入53汤圆

 楼主| 发表于 2018-6-23 10:47:31 | 显示全部楼层
OneRain 发表于 2018-6-23 10:42
我不知道你们为啥那么多问题,我几乎没啥问题,串口什么得,都妥妥得。。。多看看手册,按照官方资料来配置 ...

串口115200速率 接收多个数据 中间不加延时 不丢数据?

出0入0汤圆

发表于 2018-6-23 11:40:16 来自手机 | 显示全部楼层
参考以前51的接收方案,在中断里面接收到缓存

出0入53汤圆

 楼主| 发表于 2018-6-23 13:42:35 | 显示全部楼层
LearningASM 发表于 2018-6-23 11:40
参考以前51的接收方案,在中断里面接收到缓存

已经加了缓冲的,还会出现丢数据问题,所以才上来问问,有没有更好的办法的

  1. void UART0_INT(void) interrupt 4
  2. {
  3.         if (RI==1)
  4.     {                                       /* if reception occur */
  5.         clr_RI;                             /* clear reception flag for next reception */
  6.                 buf[kpp] = SBUF;
  7.                 kpp++;
  8.         }
  9. }
复制代码

出0入0汤圆

发表于 2018-6-23 14:06:31 | 显示全部楼层
115200 这个得把N76E003 内部时钟修正了16.6M,手册UART里有说明的


手册131页内容
但在大部分的应用中波特率115200是最常用的数值,所以我们提供调整HIRC到16.6MHz的方法,用来产生较为准确的波特率。下列表格列出,当HIIRC为16.6 MHz 时,产生波特率数值及误差。

这类便宜的东西,多看看手册还是比较好的哈

出0入25汤圆

发表于 2018-6-23 14:22:58 | 显示全部楼层
76e003  bug 还是有的,   要便宜,就要多动脑了。

目前也在跳坑中ing

出0入53汤圆

 楼主| 发表于 2018-6-23 14:30:35 | 显示全部楼层
rei1984 发表于 2018-6-23 14:22
76e003  bug 还是有的,   要便宜,就要多动脑了。

目前也在跳坑中ing

楼上的 掉入哪个坑了?

出0入0汤圆

发表于 2018-6-23 14:42:58 | 显示全部楼层
楼主可以试试先接收后clr_ri

出0入0汤圆

发表于 2018-6-23 14:54:15 | 显示全部楼层
这个芯片还是挺好用的,自从ST的003涨价后,公司产品都转成了新唐的

出0入53汤圆

 楼主| 发表于 2018-6-23 15:06:25 | 显示全部楼层
eaglelpx 发表于 2018-6-23 14:42
楼主可以试试先接收后clr_ri

我是先接收一定数据,接收完成,单独在发送接收完成的数据,目的为了不上发送影响接收,可是还是不行啊,

出0入53汤圆

 楼主| 发表于 2018-6-23 15:06:51 | 显示全部楼层
superAFE 发表于 2018-6-23 15:01
dma的功能已经深入人心了,现在国产的mcu一般都是没有这功能,换国产的mcu只能将就点了。 ...

不知道GD的芯片稳定性咋样

出0入53汤圆

 楼主| 发表于 2018-6-23 15:33:59 | 显示全部楼层
superAFE 发表于 2018-6-23 15:11
gd的芯片用得好应该行,我跑过不过客户,三四年前就用它来代替st的了。现在中低端的mcu用国产的代替进口 ...

st坑了 ,害了不少电工门

出0入0汤圆

发表于 2018-6-23 15:55:14 | 显示全部楼层
就一个串口还用得着DMA

出0入53汤圆

 楼主| 发表于 2018-6-23 16:51:55 | 显示全部楼层
modbus 发表于 2018-6-23 15:55
就一个串口还用得着DMA

当然不需要,用过这么多mcu的串口,都没有问题 第一次用E003 不知道是什么原因造成的

出0入0汤圆

发表于 2019-5-30 23:43:08 | 显示全部楼层
楼主问题解决了吗?你的原因应该是计算波特率的时候多加了一个1导致的。试试这样:
#ifdef FOSC_166000                // if Fsys = 16.6MHz
        RH3    = HIBYTE(65536 - (1037500/u32Baudrate));                  /*16.6 MHz */
        RL3    = LOBYTE(65536 - (1037500/u32Baudrate));                        /*16.6 MHz */
#endif

出0入53汤圆

 楼主| 发表于 2019-5-31 13:22:32 | 显示全部楼层
anjiyifan 发表于 2019-5-30 23:43
楼主问题解决了吗?你的原因应该是计算波特率的时候多加了一个1导致的。试试这样:
#ifdef FOSC_166000                //  ...

已经放弃这个芯片了

出0入0汤圆

发表于 2019-5-31 13:52:19 | 显示全部楼层
zhcj66 发表于 2019-5-31 13:22
已经放弃这个芯片了

我猜你之前是波特率计算出错了,官方例程的计算方法有误的,多加了一个1,在9600波特率下,偏差1没影响,但是115200波特率下,波特率计数器设置值很小,相差一个1,就占很大百分比了。
还是得看芯片手册上的计算方法才行,芯片手册上的是对的。

出0入0汤圆

发表于 2019-5-31 13:54:19 | 显示全部楼层
当然也有可能是中断优先级问题。高波特率下要把串口中断优先级设高一点,不然被别的中断抢占后,容易丢数据。

出0入0汤圆

发表于 2020-3-3 12:10:18 | 显示全部楼层
anjiyifan 发表于 2019-5-30 23:43
楼主问题解决了吗?你的原因应该是计算波特率的时候多加了一个1导致的。试试这样:
#ifdef FOSC_166000                //  ...

这个观点 很新颖

出0入0汤圆

发表于 2020-3-3 15:31:36 | 显示全部楼层
把波特率降低点可能会好些
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

GMT+8, 2024-4-20 14:39

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

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