5553|11

78

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

关于S3C2410的UART接收中断 [复制链接]

我所做的是用S3C2410驱动ZLG500B读卡模块 以实现读卡功能 之间为UART通信

问: 在wince下 用 EVC 4 如何用C编写 arm的中断初始化 以及uart接收中断服务程序

最新回复

顶一下  详情 回复 发表于 2008-6-12 08:42
点赞 关注

回复
举报

63

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
没写过,帮你顶一下
应该是属于驱动范畴,要找到软件接口
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
eVC是用来写应用程序的,不会涉及底层的中断,及相应的处理函数,包括UART
 
 
 

回复

58

帖子

0

TA的资源

一粒金砂(初级)

4
 
那么用eVC可以编写关于arm的程序吗?
 
 
 

回复

73

帖子

0

TA的资源

一粒金砂(初级)

5
 
当然可以。只要是wince支持的cpu架构,eVC都可以编写相应的应用程序。
 
 
 

回复

69

帖子

0

TA的资源

一粒金砂(初级)

6
 
那我所做的是用S3C2410驱动ZLG500B读卡模块 以实现读卡功能 之间为UART通信

请问我应该用什么编程软件??带哪个操作系统  可以带wince吗?
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

7
 
直接用eVC就行。
先确认系统开放了哪几个串口供应用层调用,然后在你的程序里打开该串口,一般用两个分别独立的线程对其进行读写。
 
 
 

回复

59

帖子

0

TA的资源

一粒金砂(初级)

8
 
那就是说 我不用关心 S3C2410里面arm内部的一些寄存器的咯? 比如rURXH0,rUFCON0,rULCON0之类的东西


下面是原来编写的   你能帮我看下这个东西可以在evc里面用吗? 谢谢了
uchar sendcmd()
{
          uchar send_cnt=3;
        uchar send_len;
        uchar temp;

        do
        {        rUTXH0=STX;        //发送开始位
                while((rUTRSTAT0&0x4)!=0x4);  //等待发送完成

                delay_10ms();        //开10ms定时器       
                while(((rUTRSTAT0&0x01)!=0x1)&&rTCNTO0!=0);        //等待 直到串口收到数据或者超时

                if((rUTRSTAT0&0x01)==0x1)                //若为串口收到数据
                {        temp=rURXH0;        //将串口数据暂存于temp
                        delay_50us();
                        while(rTCNTO0!=0);
                        if(temp==ACK)        break;        //判temp 若为应答位 则跳出循环
                }
        }while(--send_cnt);                // 若send_cnt为零 则表示mcu3次均未收到有效应答  函数返回错误值
        if(send_cnt==0)        return COMM_ERR;
               
        send_len=ser_buffer[LENGTH]+5;        //LENGTH为2  计算实际ser_buffer的长度       
        ser_buffer[send_len-2]=0;                //清空BCC校验码       
        ser_buffer[send_len-1]=ETX;                //写结束标志
       
        for(send_cnt=0;send_cnt         {
                rUTXH0=ser_buffer[send_cnt];                //依次发送通信数据缓冲区数据
                if(send_cnt<(send_len-2))                //并计算BCC校验码
                        ser_buffer[send_len-2]^=ser_buffer[send_cnt];       
                if(send_cnt==send_len-3)
                        ser_buffer[send_len-2]=~ser_buffer[send_len-2];
                while((rUTRSTAT0&0x4)!=0x4);        //等待发送完成
        }
       
        return        COMM_OK;
}
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

9
 
上面这个是在ZLG500B的范例程序上改的  原来的是用C51写的
 
 
 

回复

81

帖子

0

TA的资源

一粒金砂(初级)

10
 
用WriteFile/ReadFile就可以了啊~~底层的串口驱动应该写好的吧!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

11
 
具体的代码上baidu搜一下<>的源码,里面有参考代码
 
 
 

回复

60

帖子

0

TA的资源

一粒金砂(初级)

12
 
顶一下
 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/7 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表