野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 13609|回复: 2

串口通信

[复制链接]
发表于 2016-3-15 14:41:36 | 显示全部楼层 |阅读模式
本帖最后由 自动铅笔 于 2016-3-15 15:15 编辑

请教:串口通信例程中的发送16位数的函数为什么不对呀?
void Usart_SendHalfWord( USART_TypeDef * pUSARTx, uint16_t ch)
{
uint16_t temp_h, temp_l;

temp_h = (ch&0XFF00)>>8;

temp_l = ch&0XFF;


USART_SendData(pUSARTx,temp_h);
while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);

USART_SendData(pUSARTx,temp_l);
while (USART_GetFlagStatus(pUSARTx, USART_FLAG_TXE) == RESET);
}
串口助手接收到的都是字符,而不是数?
单步执行发现,temp_h,temp_l的数据是对的,不知道为什么串口助手接收的就不对了。
回复

使用道具 举报

发表于 2016-3-15 15:33:28 | 显示全部楼层
串口上你要选择16进制显示,不然显示的就是对应的ASCII码
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-3-16 09:00:47 | 显示全部楼层
fire 发表于 2016-3-15 15:33
串口上你要选择16进制显示,不然显示的就是对应的ASCII码

嗯,谢谢!
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2024-10-6 21:33 , Processed in 0.030221 second(s), 23 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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