找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1608|回复: 8
打印 上一主题 下一主题
收起左侧

尴尬了。忘记单片机串口怎么发送十六进制了?

[复制链接]
跳转到指定楼层
楼主
ID:590194 发表于 2021-6-21 18:02 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
SendString("STC15F2K60S2\r\nUart2 Test !\r\n");这个没问题,是字符串。
怎么发送SendString(74)SendString(A1) ,这种十六进制数据?
这个dat的类型改成啥?忘记了。。

void SendData(BYTE dat)
{
    while (busy);               //等待前面的数据发送完成
    ACC = dat;                  //获取校验位P (PSW.0)
    if (P)                      //根据P来设置校验位
    {
#if (PARITYBIT == ODD_PARITY)
        S2CON &= ~S2TB8;        //设置校验位为0
#elif (PARITYBIT == EVEN_PARITY)
        S2CON |= S2TB8;         //设置校验位为1
#endif
    }
    else
    {
#if (PARITYBIT == ODD_PARITY)
        S2CON |= S2TB8;         //设置校验位为1
#elif (PARITYBIT == EVEN_PARITY)
        S2CON &= ~S2TB8;        //设置校验位为0
#endif
    }
    busy = 1;
    S2BUF = ACC;                //写数据到UART2数据寄存器
}

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:94031 发表于 2021-6-21 19:34 | 只看该作者
下面就是串口怎么发送十六进制程序,Udat是一个十六进制数,你把发字符看到最后就是它:
void Uart1_SendChar(unsigned char Udat)
{
        SBUF=Udat;                //将要发送的数据放入串口数据缓冲区
        while(!TI);                //等待发送完成
    TI=0;                     //清零TI发送完成标记               
}
回复

使用道具 举报

板凳
ID:939710 发表于 2021-6-22 00:25 | 只看该作者
发送都是二进制,也可以说是十六进制,都是一个字节。至于是字符还是十六进制数值是看你怎么接收,同样发0x30H,你按字符收就是字符0,按十六进制收就是0x30h
回复

使用道具 举报

地板
ID:941274 发表于 2021-6-22 08:55 来自手机 | 只看该作者
直接设定16进制值
回复

使用道具 举报

5#
ID:811711 发表于 2021-6-22 08:57 | 只看该作者
lishengaha 发表于 2021-6-22 00:25
发送都是二进制,也可以说是十六进制,都是一个字节。至于是字符还是十六进制数值是看你怎么接收,同样发0x ...

就是这个理解
回复

使用道具 举报

6#
ID:590194 发表于 2021-6-22 11:26 来自手机 | 只看该作者
我看错了我去,前面0x就是16进制,我去
回复

使用道具 举报

7#
ID:390416 发表于 2021-7-6 20:28 | 只看该作者

串口1打印程序 可以打印3个十六位的变量 波特率9600 http://www.51hei.com/bbs/dpj-201660-1.html

串口发送 不需要while死等 串口接收执行软件复位 http://www.51hei.com/bbs/dpj-200927-1.html
回复

使用道具 举报

8#
ID:954312 发表于 2021-7-19 23:46 | 只看该作者
单片机的串口是,你给的是什么格式他就发送什么格式,在使用串口助手接收到时候也会出现“用什么显示的选项”:
1.如果你串口发送的是16进制数,可以直接把16进制数放到数组里面进行发送,也可以用sprintf函数对数据进行格式化成16进制格式,在进行发送。
2.如果你想发送ASCII码,就要把数据转换成字符串或者ASCII码进行发送



回复

使用道具 举报

9#
ID:950946 发表于 2021-7-20 11:43 | 只看该作者
这个需要上位机显示16进制,而不是发送16进制。这边推荐正点原子的上位机
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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