找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索

STC奇怪现象 串口发送简单的HEX单个数据程序卡死了

查看数: 1095 | 评论数: 5 | 收藏 0
关灯 | 提示:支持键盘翻页<-左 右->
    组图打开中,请稍候......
发布时间: 2025-8-29 08:04

正文摘要:

STC  开天斧 三 先用圈圈的USB开发板测试   8个按键分别发送8个不同的HEX数据 只能按一次发送正确 第二次就发不出去了 今天很早就起床 用开天斧三开发板 改了一下例程字符 ...

回复

ID:57657 发表于 2025-9-24 11:53
上位机向下位机发数据卡死:检查驱动程序,与单片机的关系较小
下位机向上位机发数据卡死:单片机串口寄存器、中断配置有问题
具体用示波器或逻辑分析仪捕捉信号数据才能知道什么问题。
ID:1160817 发表于 2025-9-24 09:56
你没有开中断, void Send(u8 puts) //发送一个字符串
ID:1160817 发表于 2025-9-24 09:56
你没有开串口发送中断, void Send(u8 puts) //发送一个字符串
ID:140644 发表于 2025-9-24 05:02
要改成这个样子才可以   



             void Send(u8 puts) //发送一个字符串
              {
              SBUF = puts;
              while(!TI);
              TI=0;
              }

范例程序 bit busy;是全局变量
不是寄存器位检测标志
void UartSend(char dat)
{
    while (busy);
    busy = 1;
    SBUF = dat;
}
ID:878061 发表于 2025-8-30 07:57
你没有开串口发送中断, void Send(u8 puts) //发送一个字符串               {               B_TX1_Busy = 1;               SBUF = puts;               while(B_TX1_Busy);               } B_TX1_Busy永远不会等于0,正确的方法是{ SBUF = puts;  while(!TI);   TI = 0;

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

Powered by 单片机教程网

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