• 大小: 5.71 KB
    文件类型: .rar
    金币: 1
    下载: 0 次
    发布日期: 2024-09-27
  • 语言: 其他
  • 标签: 代码  arm  蓝牙  串口  

资源简介

蓝牙传输源代码,基于ARM处理器,在S3C2410实验箱上运行成功,无线网络传输是一个很有活力的技术!想学习无线传输的可以下来看看!

资源截图

代码片段和文件信息

/*
 *
 *  Driver for Bluetooth PCMCIA cards with HCI UART interface
 *
 *
 */

#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include 
#include 
#include 
#include 
#include 
#include 

#include 
#include 



/* ======================== Module parameters ======================== */


/* Bit map of interrupts to choose from */
static u_int irq_mask = 0xffff;
static int irq_list[4] = { -1 };

MODULE_PARM(irq_mask “i“);
MODULE_PARM(irq_list “1-4i“);

MODULE_AUTHOR(“Marcel Holtmann “);
MODULE_DEscriptION(“BlueZ driver for Bluetooth PCMCIA cards with HCI UART interface“);
MODULE_LICENSE(“GPL“);



/* ======================== Local structures ======================== */


typedef struct btuart_info_t {
dev_link_t link;
dev_node_t node;

struct hci_dev hdev;

spinlock_t lock; /* For serializing operations */

struct sk_buff_head txq;
unsigned long tx_state;

unsigned long rx_state;
unsigned long rx_count;
struct sk_buff *rx_skb;
} btuart_info_t;


void btuart_config(dev_link_t *link);
void btuart_release(u_long arg);
int btuart_event(event_t event int priority event_callback_args_t *args);

static dev_info_t dev_info = “btuart_cs“;

dev_link_t *btuart_attach(void);
void btuart_detach(dev_link_t *);

static dev_link_t *dev_list = NULL;


/* Maximum baud rate */
#define SPEED_MAX  115200

/* Default baud rate: 57600 115200 230400 or 460800 */
#define DEFAULT_BAUD_RATE  115200


/* Transmit states  */
#define XMIT_SENDING 1
#define XMIT_WAKEUP 2
#define XMIT_WAITING 8

/* Receiver states */
#define RECV_WAIT_PACKET_TYPE 0
#define RECV_WAIT_EVENT_HEADER 1
#define RECV_WAIT_ACL_HEADER 2
#define RECV_WAIT_SCO_HEADER 3
#define RECV_WAIT_DATA 4



/* ======================== Interrupt handling ======================== */


static int btuart_write(unsigned int iobase int fifo_size __u8 *buf int len)
{
int actual = 0;

/* Tx FIFO should be empty */
if (!(inb(iobase + UART_LSR) & UART_LSR_THRE))
return 0;

/* Fill FIFO with current frame */
while ((fifo_size-- > 0) && (actual < len)) {
/* Transmit next byte */
outb(buf[actual] iobase + UART_TX);
actual++;
}

return actual;
}


static void btuart_write_wakeup(btuart_info_t *info)
{
if (!info) {
printk(KERN_WARNING “btuart_cs: Call of write_wakeup for unknown device.\n“);
return;
}

if (test_and_set_bit(XMIT_SENDING &(info->tx_state))) {
set_bit(

 属性            大小     日期    时间   名称
----------- ---------  ---------- -----  ----

     文件      19867  2006-02-26 09:37  btuart.c

----------- ---------  ---------- -----  ----

                19867                    1


评论

共有 条评论