OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6728|回复: 6

关于USART_ReceiveData函数接受问题

[复制链接]

8

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2017-9-12
在线时间
30 小时
发表于 2017-11-18 06:05:01 | 显示全部楼层 |阅读模式
1金钱
本帖最后由 HKZWAN1 于 2017-11-19 13:33 编辑

USART_ReceiveData函数接收到的是字符还是
我想用ASCII数字值来执行switch里面的语句,但是没有成功,我把1这个字符发送到上位机显示的是31.那个大佬知道为什么?








问题已经找到,在软件仿真中这个电路用跳线帽连接,但是在蓝牙中我连接的不是PA10和PA9;而是它下面的RXD  TXD 所以接线出错了。程序就是这样的
SDFIT{SH26A01M]FG0D@]%J.png

最佳答案

查看完整内容[请看2#楼]

接收是数值,任何数据都可以。8位数据。 至于你要ascii还是其他的,自己定义好,怎么发,就怎么收就可以了
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2017-11-18 06:05:02 | 显示全部楼层
接收是数值,任何数据都可以。8位数据。 至于你要ascii还是其他的,自己定义好,怎么发,就怎么收就可以了
回复

使用道具 举报

8

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2017-9-12
在线时间
30 小时
 楼主| 发表于 2017-11-18 06:07:48 | 显示全部楼层
发过去ASCII表中1的值,但是switch中的语句没有执行,想不通原因。大佬求解释啊
回复

使用道具 举报

5

主题

69

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
307
金钱
307
注册时间
2016-10-20
在线时间
64 小时
发表于 2017-11-18 10:08:24 | 显示全部楼层
仿真查看Res的值就知道你怎么回事了
回复

使用道具 举报

1

主题

17

帖子

0

精华

初级会员

Rank: 2

积分
190
金钱
190
注册时间
2017-9-18
在线时间
97 小时
发表于 2017-11-18 16:29:00 | 显示全部楼层
编译的时候都是以2进制的行式编译的,单片机就把'0'看成16进制的0x30或者是10进制的48
回复

使用道具 举报

8

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2017-9-12
在线时间
30 小时
 楼主| 发表于 2017-11-19 12:21:54 | 显示全部楼层
yangongbei 发表于 2017-11-18 16:29
编译的时候都是以2进制的行式编译的,单片机就把'0'看成16进制的0x30或者是10进制的48

这个试了还是没反应[mw_shl_code=applescript,true]void USART1_IRQHandler(void)  
{
        char Res;
        int t;
       
        if(USART_GetITStatus(USART1, USART_IT_RXNE))  //????(?????????0x0d 0x0a??)
        {
                Res=USART_ReceiveData(USART1);        //????????
    USART_SendData(USART1,Res);
                switch(Res)
                {
                        case 0x30: LED0=0;BEEP=1;break;
                        case 0x48: LED1=1;BEEP=1;break;
                }
        }
}        [/mw_shl_code]
回复

使用道具 举报

8

主题

22

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2017-9-12
在线时间
30 小时
 楼主| 发表于 2017-11-19 12:23:48 | 显示全部楼层
yangongbei 发表于 2017-11-18 16:29
编译的时候都是以2进制的行式编译的,单片机就把'0'看成16进制的0x30或者是10进制的48

我把蓝牙收到的数据发给上位机显示是0x30.但是switch 进不去
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-8 14:15

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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