查看: 3153|回复: 6

[其他] 如何通过SCI判断换行?贴上程序。。

[复制链接]

该用户从未签到

17

主题

70

帖子

0

新手上路

Rank: 1

积分
180
最后登录
1970-1-1
发表于 2012-9-21 15:57:19 | 显示全部楼层 |阅读模式
 uint8_T sci_reci[200];
interrupt void SCI0(void) 
{  
  SCI0CR2_RIE=0;                /* 接收中断位置0 */
  while(SCI0SR1_RDRF==1)
 {
  sci_reci[sci_i] = SCI0DRL;

if ((sci_reci[sci_i]=='A') &&(sci_reci[sci_i-1]=='O'))
  {       
     can_sflag=1;
     sci_i=0; 
  }
  else
  {
     sci_i++; 
  }
 
 
这样可以判断换行么??为啥我在串口调试助手里面输入OA不行呢??直接换行,串口转换为16进制发送,结果  can_sflag始终不能为1。
  
 
因为我想一句一句的发送信息,让SCI一句句的收到,所以要判断换行。。。主要目的是为了跟CAN连在一起用bootloader刷程序。。。现在卡在这里了。。。。
 
 
我知道答案 目前已有5人回答
回复

使用道具 举报

该用户从未签到

17

主题

70

帖子

0

新手上路

Rank: 1

积分
180
最后登录
1970-1-1
 楼主| 发表于 2012-9-21 15:58:12 | 显示全部楼层

RE:如何通过SCI判断换行?贴上程序。。

新手上路,很多不懂啊,,
回复 支持 反对

使用道具 举报

  • TA的每日心情
    难过
    2021-12-15 16:01
  • 签到天数: 1 天

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2012-9-22 08:52:35 | 显示全部楼层

    RE:如何通过SCI判断换行?贴上程序。。

    sci_reci[sci_i]=='A') &&(sci_reci[sci_i-1]=='O'
    你这判断的是字符A或者O。换号应该判断的是0x0A。如果你有特殊的字符代替,你应该看清楚一下。串口缓冲区中的接收数据。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    70

    帖子

    0

    新手上路

    Rank: 1

    积分
    180
    最后登录
    1970-1-1
     楼主| 发表于 2012-9-23 16:00:43 | 显示全部楼层

    回复:如何通过SCI判断换行?贴上程序。。

     
    也就是说我用串口调试助手输入0,SCI数据寄存器收到的其实是0X30。对吧?
    如果我回车,SCI寄存器收到的是0XOD,0XOA,对吧??
    如果我用16进制输入的话,是不是就可以通过判断0XOA和0XOD来判断换行了呢??
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    70

    帖子

    0

    新手上路

    Rank: 1

    积分
    180
    最后登录
    1970-1-1
     楼主| 发表于 2012-9-23 16:34:44 | 显示全部楼层

    回复:如何通过SCI判断换行?贴上程序。。

    回复第 3 楼 于2012-09-22 08:52:35发表:
    sci_reci[sci_i]=='A') &&(sci_reci[sci_i-1]=='O'
    你这判断的是字符A或者O。换号应该判断的是0x0A。如果你有特殊的字符代替,你应该看清楚一下。串口缓冲区中的接收数据。
     
     while(SCI0SR1_RDRF==1)
     {
      sci_reci[sci_i] = SCI0DRL;
     if (sci_reci[sci_i]==0xOA)
      {      
         can_sflag=1;
         sci_i=0;
      }
      else
      {
         sci_i++;
      }
     
    可惜编译出错, if (sci_reci[sci_i]==0xOA) ;
     
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    70

    帖子

    0

    新手上路

    Rank: 1

    积分
    180
    最后登录
    1970-1-1
     楼主| 发表于 2012-9-23 18:06:30 | 显示全部楼层

    回复:如何通过SCI判断换行?贴上程序。。

    其实我只是想知道如果在串口调试助手里面回车后,如何判断这个回车符,是不是用'\n'?
    因为S19文件时一句一句的,我希望在每句后面回车,就可以分开了。。。
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    17

    主题

    70

    帖子

    0

    新手上路

    Rank: 1

    积分
    180
    最后登录
    1970-1-1
     楼主| 发表于 2012-9-24 10:51:27 | 显示全部楼层

    RE:如何通过SCI判断换行?贴上程序。。

    已经实现了,。。。,呵呵
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

    站长推荐上一条 /3 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2025-7-21 02:34 , Processed in 0.105238 second(s), 27 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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