找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3063|回复: 3
收起左侧

关于单片机+sx1278无线模块只能接收1个字节的问题

[复制链接]
ID:384206 发表于 2018-11-3 19:25 | 显示全部楼层 |阅读模式
单片机使用 stc59c52 用的泽耀公司的 AS32-ttl-100 无线模块     使用串口 接收 发送数据 SCON=0x50 8位    TMOD = 0x20 8位自动重装在
TH1 = 0xfd   TL1=0xfd     波特率 9600     发送波特率9600
发送端:模块介绍 一次发送32字节  不满32 等待3字节 认为数据终止 模块发射数据。

问题 : SBUF  只能送到单片机 一个字节的数据 。   


  1. void jieshou()    接收的代码
  2. {
  3. uchar b,a;
  4. uint c=0x7fff;
  5. while(c--)
  6. {
  7.   if(0!=RI)
  8.   {
  9.    for(b=0;b<4;b++)
  10.    {
  11.     a=SBUF;
  12.     shuzu[b]=a;
  13.     c=0x7fff;
  14.    }
  15.   RI=0;
  16.   }
  17. }
  18. }
复制代码

求解啊    试过很多种办法了  但没什么卵用   难道只能一个字节一个字节的发么   


回复

使用道具 举报

ID:123289 发表于 2018-11-3 21:36 | 显示全部楼层
9600的波特率传送一个字节约需要1.5ms,在这个时间里足以将收到的字节保存起来,而后再收下个字节,如果5ms内收不到就认为结束了一帧,
你逻辑混乱!
正确的做法:串口中断后首先清中断标记,再下载数据,再保存数据,再将保存数据的地址+1,退出中断程序
你呢:中断后,下载了4次数据,用时不会超0.1ms,再下多些,也都是同一个数据,因为下个数据还没有到来!
回复

使用道具 举报

ID:277550 发表于 2018-11-3 22:39 | 显示全部楼层
首先,使用电脑两个串口,测试模块是正常的,,,,,然后把单片机的串口程序对电脑通讯,看看是否正常。。。。。最后,单片机连接模块,进行通讯、接收测试 。


——这模块,在坏掉的情况,会只收到1个字节的、模块还会比正常时过热。
回复

使用道具 举报

ID:190832 发表于 2018-11-3 22:45 | 显示全部楼层
发完一个再发下一个,直到发完
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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