查看: 1697|回复: 18

[求助] 请教啥时候,串口会不发送信息了??

[复制链接]
  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
    发表于 2021-1-13 14:36:28 | 显示全部楼层 |阅读模式
    本帖最后由 wdliming-222461 于 2021-1-13 15:03 编辑

    我使用了lpc1768单片机,硬件上面是485总线,波特率是115200,程序里面是在while(1)循环中使用定时阻塞发送字符串,但是终端电阻拿掉之后,串口就不发送了,代码如下
    1. void uart2SendStr(uint8_t const *pucStr, uint32_t ulNum)
    2. {
    3.     uint32_t i;


    4.     for (i = 0; i < ulNum; i++)                 /* 发送指定个字节数据            */
    5.     {
    6.         uart2SendByte(*pucStr++);
    7.     }
    8.     while ((LPC_UART2->LSR & UART_LSR_TEMT) == 0);
    9. }

    复制代码
    1. void uart2SendByte(uint8_t ucDat)
    2. {
    3.     LPC_UART2->THR = ucDat;                               /*  写入数据                    */
    4.     while ((LPC_UART2->LSR & UART_LSR_THRE) == 0);        /*  等待数据发送完毕            */
    5. }
    复制代码


    会不会串口因为突然拔掉电阻之后,就串口出现错误了,导致不发送了, 因为没法调试,所以只能上论坛来问问

    最佳答案

    我们之前遇到过的类似问题是: 由于干扰,导致RS485芯片的使能端异常,从而导致接收端接收数据异常。 我们当时采取的方案和你现在的方案一致,在未接收到从机响应时,初始化自己的串口外设进行重试,如果再次失败, ...
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-3-24 09:39
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    94

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2021-12-28
    发表于 2021-1-13 15:18:37 | 显示全部楼层
    终端电阻? 120R? 是 485 的匹配电阻吗?如果是匹配电阻就不能去掉
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2021-1-13 15:21:31 | 显示全部楼层
    tony2k20 发表于 2021-1-13 15:18
    终端电阻? 120R? 是 485 的匹配电阻吗?如果是匹配电阻就不能去掉

    我拿掉终端电阻能通信,不拿掉,就通信失败。。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    擦汗
    2021-3-24 09:39
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    94

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    299
    最后登录
    2021-12-28
    发表于 2021-1-13 16:17:42 | 显示全部楼层
    wdliming-222461 发表于 2021-1-13 15:21
    我拿掉终端电阻能通信,不拿掉,就通信失败。。

    应该是485的问题,拿示波器量一下485的波形吧和485驱动芯片手册里的描述对一下,另外是用的485电缆吗?外面屏蔽,数据线是双绞线的那种。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    慵懒
    2024-4-9 17:01
  • 签到天数: 1478 天

    [LV.10]以坛为家III

    203

    主题

    2万

    帖子

    64

    超级版主

    Rank: 8Rank: 8

    积分
    92619
    最后登录
    2024-4-24
    发表于 2021-1-13 16:50:53 | 显示全部楼层
    485好像不需要什么终端电阻吧?你这个是不是和CAN什么的复用了?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2021-1-13 17:00:13 | 显示全部楼层
    tony2k20 发表于 2021-1-13 16:17
    应该是485的问题,拿示波器量一下485的波形吧和485驱动芯片手册里的描述对一下,另外是用的485电缆吗?外 ...

    我也这么认为,但是硬件部门说没问题
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2021-1-13 17:05:52 | 显示全部楼层
    stm1024 发表于 2021-1-13 16:50
    485好像不需要什么终端电阻吧?你这个是不是和CAN什么的复用了?

    我这个就是普通的串口, 只是硬件上面用了485~~
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2024-4-10 22:38
  • 签到天数: 1335 天

    [LV.10]以坛为家III

    88

    主题

    4292

    帖子

    12

    版主

    Rank: 7Rank: 7Rank: 7

    积分
    9049
    最后登录
    2024-4-13
    发表于 2021-1-14 09:24:48 | 显示全部楼层
    看了标题,我还以为是LPC1768的bug呢!
    不过,LPC1768在串口上面貌似确实有bug,可以参照官方文档的堪误表。

    另,楼主您的硬件有两个部分,是串口不发送了,还是RS485不发送? 这个问题非常关键。您的所谓的“不发送”是指接收不到数据,还是示波器点TXD引脚都没有波形了?
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2021-1-14 13:46:23 | 显示全部楼层
    jobszheng5 发表于 2021-1-14 09:24
    看了标题,我还以为是LPC1768的bug呢!
    不过,LPC1768在串口上面貌似确实有bug,可以参照官方文档的堪误表 ...

    我目前的解决方案是,如果不发送了,从机就不会接收到数据,那我主机收不到反馈信息,以收不到反馈信息来判断,串口是否坏了,超过3s我就认为串口出错,则重新初始化串口一串口相关标志位,这样可以解决了,但是勘误表我也要看看,谢谢提醒
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

  • TA的每日心情
    开心
    2020-12-18 10:54
  • 签到天数: 8 天

    [LV.3]偶尔看看II

    40

    主题

    262

    帖子

    0

    高级会员

    Rank: 4

    积分
    977
    最后登录
    2024-3-10
     楼主| 发表于 2021-1-14 14:01:09 | 显示全部楼层
    jobszheng5 发表于 2021-1-14 09:24
    看了标题,我还以为是LPC1768的bug呢!
    不过,LPC1768在串口上面貌似确实有bug,可以参照官方文档的堪误表 ...

    我勘误表上没看到串口部分的说明啊,而且硬件说485的硬件很成熟,说就是软件的问题。。。。
    哎...今天够累的,签到来了~
    回复 支持 反对

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-25 23:03 , Processed in 0.162944 second(s), 30 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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