原创 vxworks一个串口的易理解的测试程序

2006-11-6 23:34 4535 8 10 分类: MCU/ 嵌入式

#nclude "vxWorks.h"
#include "config.h"
#include "tffs/flsocket.h"
#include "tffs/pcic.h"
#include


#define COM1_PORT   0x3F8
#define inportb sysInByte
#define outportb sysOutByte


void com_send_string(unsigned char *str);
void  com_send_data(unsigned char sdata);
int com1_send_data_ready(void);
int com1_recv_data_ready(void);
unsigned char com1_recv_data(void);
void com1_init(void);


 


void maintask(void)
{
 unsigned char str[]="send success!";
 char i;
 /*com1_init();/*初始化串口*/
 while(1)
 {
              if(com1_recv_data_ready())
  {
                 i="com1"_recv_data();
         com_send_data(i);
  com_send_string(str);
                break;
                 }
 
 }
 
}
/***************************************/


/*发送一个字符串*/
void com_send_string(unsigned char *str)
{
 int i;
 i="0";
 while(str != '\0')
 {
  com_send_data(str);
  i++;
 }
}


/*发送一个字符*/
void  com_send_data(unsigned char sdata)
{
  while(1)
  {
    if(com1_send_data_ready())   /* send data to com1 ready: 1, else 0*/
     {
        outportb(COM1_PORT,sdata);    /* send data to com1( 查询方式?)*/
        break;
     }
  }
}



/*发送数据是否就绪*/
int com1_send_data_ready(void)   /* send data to com1 ready: 1, else 0*/
{
 if(((unsigned char )inportb(COM1_PORT+5) & 0x20)!= 0)
  return 1;
 else return 0;
}
/*接收数据是否就绪*/
int com1_recv_data_ready(void)
{
 if(((unsigned char )inportb(COM1_PORT+5) & 0x01)!= 0)
  return 1;
 else return 0;
}


/*接收数据*/
unsigned char com1_recv_data(void)
{
 return inportb(COM1_PORT);
}



/*初始化串口*/
void com1_init(void)
 {
   outportb(COM1_PORT+3,0x80);   /* DLAB="1", set baud*/
 outportb(COM1_PORT,0x0c);     /* 波特率 0x30:2400 0x18:4800 0x0c:9600*/
 outportb(COM1_PORT+1,0x00);
 outportb(COM1_PORT+3,0x03);   /* data length: 8 , stop bits: 1*/
 outportb(COM1_PORT+4,0x0b);
 outportb(COM1_PORT+1,0x01);   /* receive interrupt enable*/
 inportb(COM1_PORT);
 }

PARTNER CONTENT

文章评论2条评论)

登录后参与讨论

shenyandetongxing_551209819 2006-11-20 23:03

是这样的,感觉vxworks都将驱动抽象成很多的层次,主要是硬件抽象层和软件抽象层,这个只是应该是硬件抽象层最底层的一部分,而且只是查询方式,如果利用中断将这些函数适配到open,close等函数上就差不多了吧?不知道这样理解对不对呢?

用户73924 2006-11-20 21:27

这个严格意义上来说不能算作驱动。没有中断的支持。和vxworks的标准驱动程序差别很远。应当说是串口测试的例子程序。
相关推荐阅读
shenyandetongxing_551209819 2010-02-25 21:34
MyEclipse 建立第一个工程
1.打开MyEclipse--新建个工程File--New--Project--WebProject 2.在ProjectName中输入hello--Finish 3.然后为工程添加struts框架,...
shenyandetongxing_551209819 2010-02-06 22:42
人力资源管理软件(技术储备)
JAVA的SSH开发框架Struts、Spring、Hibernate在各层的作用1、Struts 负责 web层ActionFormBean 接收网页中表单提交的数据,然后通过Action 进行处理...
shenyandetongxing_551209819 2010-02-06 02:51
个人资源管理软件(需求)
先提提需求吧,这是重中之重,这不是简单就能完成的,需要不断的修改和完善。既然是个人资源管理就要首先搞清楚个人资源包括哪些部分:1  人脉资源,也就是我们常说的关系,人是社会型动物就不可能生活在真空里,...
shenyandetongxing_551209819 2010-02-06 02:33
HR软件设计开始(关注个人资源管理与分析)
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2010-02-06 02:30
对HR和B/S模式的东西感兴趣
最近对HR很感兴趣,上网搜了一下,HR的软件也不少,其中风头正劲的用友公司做的挺多,但是看了看都是针对企业级的。但自己平常的工作和进步帮助不大。想整一个关于人力资源、人际关系进行总结、分析的软件,让自...
shenyandetongxing_551209819 2008-10-01 16:18
由于工作原因,改行!!
已经好久没有上我的博客了,还有很多朋友支持我,很欣慰:)现在由于工作原因很长一段时间内将挥泪告别嵌入式。现在如果有做PKI或PMI的跟我一起交流啊:)...
我要评论
2
8
关闭 站长推荐上一条 /3 下一条