查看: 9538|回复: 14

[已解决] K60 串口中断问题(已解决)

[复制链接]

该用户从未签到

2

主题

13

帖子

0

新手上路

Rank: 1

积分
30
最后登录
1970-1-1
发表于 2013-3-13 09:56:39 | 显示全部楼层 |阅读模式
请问K60串口中断,是不是中断一次接收一个字符?如果我要接收一串字符串呢,如何将不断接收过来的字符存到一个buff里面?
我知道答案 目前已有13人回答
回复

使用道具 举报

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

    连续签到: 1 天

    [LV.1]初来乍到

    305

    主题

    4701

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    377
    最后登录
    2023-8-16
    发表于 2013-3-13 10:59:03 | 显示全部楼层

    RE:K60 串口中断问题

    1个字节,字符串的话用DMA。或者自己写到缓冲区。
    该会员没有填写今日想说内容.
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    30
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-13 11:08:12 | 显示全部楼层

    回复:K60 串口中断问题

    回复第 2 楼 于2013-03-13 10:59:03发表:
    1个字节,字符串的话用DMA。或者自己写到缓冲区。 

    嗯我尝试着让输入的字符一个个的存入 SerRecData[30]数组,是按下面来操作的,
    但是不知道哪里出了错误
     
    void UART3_RX_TX_IRQHandler(void)
    {
     inchar = SER_GetChar ();
      SerRecData[k++] = inchar;
    }
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    21

    帖子

    0

    新手上路

    Rank: 1

    积分
    38
    最后登录
    2020-4-9
    发表于 2013-3-15 09:11:30 | 显示全部楼层

    回复:K60 串口中断问题

    回复第 3 楼 于2013-03-13 11:08:12发表:
    回复第 2 楼 于2013-03-13 10:59:03发表:
    1个字节,字符串的话用DMA。或者自己写到缓冲区。 

    嗯我尝试着让输入的字符一个个的存入 SerRecData[30]数组,是按下面来操作的,
    但是不知道哪里出了错误
     
    void UART3_RX_TX_IRQHandler(void)
    {
     inchar = SER_GetChar ();
      SerRecData[k++] = inchar;
    }
     
     
    inchar, k, SerRecData都是全局变量吗?k的取值范围是0-29吗
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    90

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    419
    最后登录
    1970-1-1
    发表于 2013-3-15 11:21:52 | 显示全部楼层

    RE:K60 串口中断问题

    初步想法:intchar 可以不用全局变量,但这个k的初始化,以及接收完成后如何处理(k=0,清空serRecData数组)这块可能有问题,还有,可能存在溢出的问题
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    30
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-17 10:39:56 | 显示全部楼层

    回复:K60 串口中断问题

    回复第 5 楼 于2013-03-15 11:21:52发表:
    初步想法:intchar 可以不用全局变量,但这个k的初始化,以及接收完成后如何处理(k=0,清空serRecData数组)这块可能有问题,还有,可能存在溢出的问题
     
    char SerRecData[50];
    char inchar;
    int SerRecFlag,len,k=0;
    恩在这里我 设的是全局变量,我也在考虑怎么来判断接收完成,接收完成后如何清空,想使用一个Flag,但是不太确定此刻如何来用

     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    30
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-17 10:43:42 | 显示全部楼层

    回复:K60 串口中断问题

    回复第 4 楼 于2013-03-15 09:11:30发表:
    回复第 3 楼 于2013-03-13 11:08:12发表:
    回复第 2 楼 于2013-03-13 10:59:03发表:
    1个字节,字符串的话用DMA。或者自己写到缓冲区。 

    嗯我尝试着让输入的字符一个个的存入 SerRecData[30]数组,是按下面来操作的,
    但是不知道哪里出了错误
     
    void UART3_RX_TX_IRQHandler(void)
    {
     inchar = SER_GetChar ();
      SerRecData[k++] = inchar;
    }
     
     
    inchar, k, SerRecData都是全局变量吗?k的取值范围是0-29吗
     
    char SerRecData[50];
    char inchar;
    int SerRecFlag,len,k=0;
    是的,全是全局变量,但是K的范围我没有规定,因为我的想法是,来一个字符,K值自动加1,
    然后完成接收后在将SerRecData数组清空,不太清楚如何操作呢
     
     

     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    90

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    419
    最后登录
    1970-1-1
    发表于 2013-3-17 16:05:44 | 显示全部楼层

    RE:K60 串口中断问题

    如果不用OS的话,可以考虑一下消息队列
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    2

    主题

    13

    帖子

    0

    新手上路

    Rank: 1

    积分
    30
    最后登录
    1970-1-1
     楼主| 发表于 2013-3-17 17:55:13 | 显示全部楼层

    回复:K60 串口中断问题

    回复第 8 楼 于2013-03-17 16:05:44发表:
    如果不用OS的话,可以考虑一下消息队列
     
    这个消息队列之前没有听过,有没有例子借鉴一下呢
     
    回复 支持 反对

    使用道具 举报

    该用户从未签到

    3

    主题

    90

    帖子

    0

    中级会员

    Rank: 3Rank: 3

    积分
    419
    最后登录
    1970-1-1
    发表于 2013-3-17 21:49:49 | 显示全部楼层

    回复:K60 串口中断问题

    回复第 9 楼 于2013-03-17 17:55:13发表:
    回复第 8 楼 于2013-03-17 16:05:44发表:
    如果不用OS的话,可以考虑一下消息队列
     
    这个消息队列之前没有听过,有没有例子借鉴一下呢
     看看CH_Bootloader源码,里面用到了消息队列,听起来挺玄乎,其实就是数据结构中循环队列的应用

     
    回复 支持 反对

    使用道具 举报

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

    本版积分规则

    关闭

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

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

    GMT+8, 2025-7-20 05:04 , Processed in 0.103920 second(s), 29 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

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