OpenEdv-开源电子网

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

正点原子哪段程序要求发送的字符是以回车换行结束(0x0D,0x0A)

[复制链接]

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
发表于 2016-7-29 11:16:41 | 显示全部楼层 |阅读模式
3金钱
正点原子哪段程序要求发送的字符是以回车换行结束(0x0D,0x0A)   难道把发送的数据后加回车换行才接受完

最佳答案

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

void USART1_IRQHandler(void) { u8 res; #ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定义了,说明使用ucosII了. OSIntEnter(); #endif if(USART1->SR&(1(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收 } } } } #ifdef OS_CRITICAL_METHOD //如果OS_CRITICAL_METHOD定义了,说明使用ucosII了. OSIntExit(); #endif } #endif ...
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2013-7-27
在线时间
18 小时
发表于 2016-7-29 11:16:42 | 显示全部楼层
void USART1_IRQHandler(void)
{
        u8 res;       
#ifdef OS_CRITICAL_METHOD         //如果OS_CRITICAL_METHOD定义了,说明使用ucosII了.
        OSIntEnter();   
#endif
        if(USART1->SR&(1<<5))//接收到数据
        {         
                res=USART1->DR;
                if((USART_RX_STA&0x8000)==0)//接收未完成
                {
                        if(USART_RX_STA&0x4000)//接收到了0x0d
                        {
                                if(res!=0x0a)USART_RX_STA=0;//接收错误,重新开始
                                else USART_RX_STA|=0x8000;        //接收完成了
                        }else //还没收到0X0D
                        {       
                                if(res==0x0d)USART_RX_STA|=0x4000;
                                else
                                {
                                        USART_RX_BUF[USART_RX_STA&0X3FFF]=res;
                                        USART_RX_STA++;
                                        if(USART_RX_STA>(USART_REC_LEN-1))USART_RX_STA=0;//接收数据错误,重新开始接收          
                                }                 
                        }
                }                                                                                                
        }
#ifdef OS_CRITICAL_METHOD         //如果OS_CRITICAL_METHOD定义了,说明使用ucosII了.
        OSIntExit();                                                                                           
#endif
}
#endif       

回复

使用道具 举报

0

主题

6

帖子

0

精华

新手入门

积分
9
金钱
9
注册时间
2013-7-27
在线时间
18 小时
发表于 2016-7-29 11:38:15 | 显示全部楼层
刚学到这里,,,,
回复

使用道具 举报

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
 楼主| 发表于 2016-7-29 11:56:47 | 显示全部楼层
发送数据时不加回车换行符也可以发出去啊  程序怎么理解
回复

使用道具 举报

6

主题

94

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1581
金钱
1581
注册时间
2016-7-2
在线时间
277 小时
发表于 2016-7-29 12:02:15 | 显示全部楼层
asngj 发表于 2016-7-29 11:56
发送数据时不加回车换行符也可以发出去啊  程序怎么理解

你应该是选了发送新行
回复

使用道具 举报

30

主题

73

帖子

0

精华

新手上路

积分
21
金钱
21
注册时间
2016-6-5
在线时间
85 小时
 楼主| 发表于 2016-7-29 12:07:54 | 显示全部楼层
迪拜大呲花 发表于 2016-7-29 12:02
你应该是选了发送新行

谢谢  难道你做串口实验  要发送几个字符还回车换行吗   不是直接点发送就可以发送过去了啊
不需要再回车换行   应该是哪哪段程序里设定了   不知道是哪里
回复

使用道具 举报

351

主题

1472

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8078
金钱
8078
注册时间
2015-10-15
在线时间
2915 小时
发表于 2016-7-29 12:10:01 | 显示全部楼层
具体不知道你怎么理解的。。。
总之很简单,你发送东西过去。。。“AAAAAAAAAA",默认助手点击了”回车换行“, 那么就会收到”AAAAAAAAAAAAA" +回车换行,,,那么芯片就收到了。就解析回车换行,来判断你发送了“AAAAAAAAAAAAAA”。。

我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

351

主题

1472

帖子

12

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
8078
金钱
8078
注册时间
2015-10-15
在线时间
2915 小时
发表于 2016-7-29 12:11:16 | 显示全部楼层
你跟别人说话,你跟他说,如果我说了 “XXX"就代表我结束了,你就把我之前说过的话记录下来。。。那么你说话的时候,你说一段话,然后说XXX结束。。别人就记录下你XXX之前说了啥,,很简单的
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

30

主题

1170

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1993
金钱
1993
注册时间
2016-2-16
在线时间
527 小时
发表于 2016-7-29 12:19:21 | 显示全部楼层
协议经常是另外定的,不要纠结回车换行的问题,真正用的时候,一般是没有所谓的回车换行的
回复

使用道具 举报

5

主题

103

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
235
金钱
235
注册时间
2014-11-26
在线时间
25 小时
发表于 2016-7-29 13:11:44 | 显示全部楼层
发送完成不完成是自己看需要的,不是非得0x0D,0x0A结束
回复

使用道具 举报

6

主题

64

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
320
金钱
320
注册时间
2017-10-14
在线时间
80 小时
发表于 2017-10-14 23:44:06 | 显示全部楼层
1376115749 发表于 2016-7-29 13:11
发送完成不完成是自己看需要的,不是非得0x0D,0x0A结束

接收到0X0D后,USART_RX_STA的第14位为什么会置1?
回复

使用道具 举报

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

本版积分规则



关闭

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

正点原子公众号

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

GMT+8, 2025-6-9 13:46

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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