freepeople性欧美熟妇, 色戒完整版无删减158分钟hd, 无码精品国产vα在线观看DVD, 丰满少妇伦精品无码专区在线观看,艾栗栗与纹身男宾馆3p50分钟,国产AV片在线观看,黑人与美女高潮,18岁女RAPPERDISSSUBS,国产手机在机看影片

正文內(nèi)容

基于安卓控制的智能無(wú)線開(kāi)關(guān)-畢業(yè)設(shè)計(jì)論文(編輯修改稿)

2025-07-16 12:59 本頁(yè)面
 

【文章內(nèi)容簡(jiǎn)介】 T or USB)216。 USB 協(xié)議: Full Speed , Compliant With 216。 模塊可以作為SMD 貼片工藝216。 RoHS 制程216。 引腳半孔工藝216。 無(wú)線收發(fā)射216。 CSR BC04 藍(lán)牙芯片技術(shù)216。 自適應(yīng)跳頻技術(shù)216。 體積小,(27mm13mm2mm)216。 簡(jiǎn)單的外圍設(shè)計(jì)電路216。 藍(lán)牙Class 2 功率級(jí)別216。 存儲(chǔ)溫度:40 至+85 度,工作溫度:25 至+75 度216。 協(xié)波干擾:,發(fā)射功率 3 dBm216。 誤碼率:0,但會(huì)在傳輸鏈路產(chǎn)生信號(hào)衰變,才有誤碼,如RS232 和TTL 線路處理線路中低功耗高性能無(wú)線收發(fā)系統(tǒng)低成本應(yīng)用領(lǐng)域216。 藍(lán)牙車載免提216。 藍(lán)牙GPS216。 藍(lán)牙PCMCIA , USB Dongle216。 藍(lán)牙數(shù)據(jù)傳送軟件216。 CSR AT 指令集 (對(duì)藍(lán)牙模塊進(jìn)行測(cè)試)進(jìn)入AT 指令的方法:給模塊上電,不配對(duì)的情況下,就是AT 模式了。指令間隔1S 左右。出廠參數(shù):波特率9600N81,名字linvor,密碼1234測(cè)試通訊發(fā)送:AT(返回OK,一秒左右發(fā)一次)返回:OK改藍(lán)牙串口通訊波特率發(fā)送:AT+BAUD1返回:OK1200發(fā)送:AT+BAUD2返回:OK2400……11200224003480049600(默認(rèn)就是這個(gè)設(shè)置)51920063840075760081152009230400A460800B921600C1382400216。 設(shè)置超過(guò)115200 后用電腦無(wú)法使用,要用單片機(jī)編程于高于115200 才能使用此波特率和重新發(fā)AT 命令設(shè)低波特率216。 用AT 命令設(shè)好波特率后,下次上電使用不需再設(shè),可以掉電保存波特率。改藍(lán)牙名稱發(fā)送:AT+NAMEname返回:OKname參數(shù)name:所要設(shè)置的當(dāng)前名稱,即藍(lán)牙被搜索到的名稱。20 個(gè)字符以內(nèi)。例:發(fā)送AT+NAMEbill_gates返回OKname這時(shí)藍(lán)牙名稱改為bill_gates參數(shù)可以掉電保存,只需修改一次。PDA 端刷新服務(wù)可以看到更改后的藍(lán)牙名稱,名字不可超過(guò)20 個(gè)字符。改藍(lán)牙配對(duì)密碼發(fā)送:AT+PINxxxx返回:OKsetpin參數(shù)xxxx:所要設(shè)置的配對(duì)密碼,4 個(gè)數(shù)字,此命令可用于從機(jī)或主機(jī)。從機(jī)是適配器或手機(jī)彈出要求輸入配對(duì)密碼窗口時(shí),手工輸入此參數(shù)就可以連接從機(jī)。主藍(lán)牙模塊搜索從機(jī)后,如果密碼正確,則會(huì)自動(dòng)配對(duì),主模塊除了可以連接配對(duì)從模塊外,其他產(chǎn)品包含從模塊的時(shí)候也可以連接配對(duì),比如含藍(lán)牙的數(shù)碼相機(jī),藍(lán)牙GPS,藍(lán)牙串口打印機(jī),等等,特別地,藍(lán)牙GPS 為典型例子例:發(fā)送:AT+PIN8888返回:OKsetpin這時(shí)藍(lán)牙配對(duì)密碼改為8888,模塊在出廠時(shí)的默認(rèn)配對(duì)密碼是1234。參數(shù)可以掉電保存,只需修改一次。無(wú)校驗(yàn)設(shè)置指令:( 版后支持)AT+PN(默認(rèn)就是這個(gè)設(shè)置)偶校驗(yàn)設(shè)置指令:( 版后支持)AT+PE奇校驗(yàn)設(shè)置指令:( 版后支持)AT+PO獲取AT 指令版本命令:AT+VERSION 則為正品4 系統(tǒng)軟件的設(shè)計(jì) 相關(guān)軟件編程技術(shù) 嵌入式C編程 Windows平臺(tái)下的普通C語(yǔ)言編程跟Linux平臺(tái)下的嵌入式C語(yǔ)言編程幾乎沒(méi)什么不同。主要差別只是在于編譯器、API等開(kāi)發(fā)工具的不同。但是,在嵌入式C編程的世界里,如果要編寫(xiě)出嵌入式驅(qū)動(dòng)程序,僅僅是熟悉C語(yǔ)言是遠(yuǎn)遠(yuǎn)不夠的,還得精通嵌入式芯片工作原理(寄存器設(shè)定等),操作系統(tǒng)原理(存儲(chǔ)空間分配等),除此之外,還需要了解基本的數(shù)模電的電路知識(shí)等硬件知識(shí)??梢?jiàn),嵌入式C編程比普通的C編程難度大多了。 安卓JAVA編程 JAVA語(yǔ)言是典型的面向?qū)ο蟮恼Z(yǔ)言。面向?qū)ο蟮某绦蛟O(shè)計(jì)語(yǔ)言必須有描述對(duì)象及其相互之間關(guān)系的語(yǔ)言成分。這些程序設(shè)計(jì)語(yǔ)言可以歸納為以下幾類:系統(tǒng)中一切皆為對(duì)象;對(duì)象是屬性及其操作的封裝體;對(duì)象可按其性質(zhì)劃分為類,對(duì)象成為類的實(shí)例;實(shí)例關(guān)系和繼承關(guān)系是對(duì)象之間的靜態(tài)關(guān)系;消息傳遞是對(duì)象之間動(dòng)態(tài)聯(lián)系的唯一形式,也是計(jì)算的唯一形式;方法是消息的序列。本次設(shè)計(jì)我們的android應(yīng)用程序用的是java語(yǔ)言,因此必須得對(duì)面向?qū)ο笏枷胗袀€(gè)深刻的認(rèn)識(shí)。 系統(tǒng)底層軟件的設(shè)計(jì) 本系統(tǒng)的底層軟件指LED燈的驅(qū)動(dòng)程序,測(cè)試程序以及UART串口的初始化程序,這些程序的編寫(xiě)都是在ubuntu環(huán)境下用vi編輯器編寫(xiě)的。 LED燈驅(qū)動(dòng)程序設(shè)計(jì) 我們知道,要寫(xiě)出硬件的驅(qū)動(dòng)程序,除了擁有必要的軟件編程能力之外,必須得熟悉硬件的工作原理。此驅(qū)動(dòng)程序的源文件名為:我們先查看LED燈的電路原理圖,通過(guò)查看GEC210開(kāi)發(fā)板核心版的schematic,可知原理圖如下:圖9 LED燈的電路原理圖由圖可知,核心版上的4個(gè)led燈是與處理器的GPJ2_X引腳連接,根據(jù)二極管的工作原理,VDD_REG1_IO端為高電平,則只要把GPJ2_X端設(shè)置為低電平,led燈就會(huì)被點(diǎn)亮。再查此原理圖,可知GPJ2_X引腳與處理器的連接如下:圖10 GPJ2_X引腳與處理器的連接此時(shí)則可知道要控制led的亮滅先執(zhí)行兩個(gè)步驟,第一:把管理GPJ2_X的控制寄存器GPJ2_CON相應(yīng)位設(shè)置為輸出模式,第二:把數(shù)據(jù)寄存器GPJ2DAT設(shè)置為輸出低電平。此驅(qū)動(dòng)程序的源文件名為:(具體內(nèi)容請(qǐng)見(jiàn)附錄):驅(qū)動(dòng)模塊加載函數(shù):static int __init gec210_led_dev_init(void) { int ret。 int i。 for (i = 0。 i LED_NUM。 i++) { ret = gpio_request(led_gpios[i], LED)。//申請(qǐng)LED燈的I/O口 s3c_gpio_cfgpin(led_gpios[i], S3C_GPIO_OUTPUT)。 gpio_set_value(led_gpios[i], 1)。 } ret = misc_register(amp。gec210_led_dev)。 //注冊(cè)雜項(xiàng)設(shè)備 printk(DEVICE_NAME\tinitialized\n)。 return ret。}驅(qū)動(dòng)模塊卸載函數(shù):static void __exit gec210_led_dev_exit(void) { int i。 for (i = 0。 i LED_NUM。 i++) { gpio_free(led_gpios[i])。 //釋放I/O口 } misc_deregister(amp。gec210_led_dev)。//卸載雜項(xiàng)設(shè)備}定義ioctl函數(shù)static long gec210_leds_ioctl(struct file *filp, unsigned int cmd, unsigned long arg){ printk(_IOC_NR(cmd)=%d arg=%d\n,_IOC_NR(cmd),(int)arg)。 if( _IOC_TYPE(cmd) != LED_MAGIC ) return EINVAL。 if( _IOC_NR(cmd) MAX_NR ) return EINVAL。 switch( cmd ) { case LED1: //設(shè)置LED1 的開(kāi)或者關(guān) gpio_set_value(led_gpios[_IOC_NR(cmd)],arg)。 printk(led 1\n)。 break。 case LED2: //設(shè)置LED2 的開(kāi)或者關(guān) gpio_set_value(led_gpios[_IOC_NR(cmd)],arg)。 printk(led2\n)。 break。 case LED3: //設(shè)置LED3 的開(kāi)或者關(guān) gpio_set_value(led_gpios[_IOC_NR(cmd)],arg)。 printk(led3\n)。 break。 case LED4: //設(shè)置LED4 的開(kāi)或者關(guān) gpio_set_value(led_gpios[_IOC_NR(cmd)],arg)。 printk(led4\n)。 break。 default: printk(default\n)。 return EINVAL。 } return 0。}//把自定義的ioctl函數(shù)賦值給file_operations static struct file_operations gec210_led_dev_fops = { .owner = THIS_MODULE, .unlocked_ioctl = gec210_leds_ioctl,}Makefile文件內(nèi)容:CONFIG_MYCHAR_DEV ?=mifneq ($(KERNELRELEASE),) dc_motor objs:= obj$(CONFIG_MYCHAR_DEV)+=elsePWD :=$(shell pwd)KERN_VER = $(shell uname r)KERN_DIR = /home/chengjunyi/androidsource/gec210/class60/modules: $(MAKE) C $(KERN_DIR) M=$(PWD) modulesendifclean: rm rf *.o *~core .depend *.cmd *.ko *. *.tmp_versions Makefile編譯完成后,,在pc端通過(guò)adb push 命令下載到開(kāi)發(fā)板端,然后在開(kāi)發(fā)板端的終端輸入insmod ,再通過(guò)chmod命令修改驅(qū)動(dòng)權(quán)限,則已成功加載led燈的驅(qū)動(dòng)程序了。 LED燈測(cè)試程序設(shè)計(jì) 有了上面的驅(qū)動(dòng)程序,自然得寫(xiě)一個(gè)應(yīng)用程序去操控LED燈,以測(cè)試驅(qū)動(dòng)程序是否成功編寫(xiě)。此處并不用驅(qū)動(dòng)程序那么復(fù)雜,只需寫(xiě)一個(gè)簡(jiǎn)單的C程序,通過(guò)main函數(shù)的參數(shù)把用戶從鍵盤(pán)輸入的數(shù)據(jù)通過(guò)ioctl函數(shù)把參數(shù)傳遞到底層的驅(qū)動(dòng)程序,以控制LED燈的亮滅。此測(cè)試程序的源文件名為:(具體內(nèi)容請(qǐng)見(jiàn)附錄)核心代碼如下:fd = open(/dev/leds, O_RDWR)。 // 打開(kāi)設(shè)備led_no = strtoul(argv[1], 0, 0) 1。 // 操作哪個(gè)LED?if (!strcmp(argv[2], on)) { //開(kāi)燈 switch(led_no) { case 0: ioctl(fd,LED1,IOCTL_LED_ON)。 break。 case 1: ioctl(fd,LED2,IOCTL_LED_ON)。 break。 case 2: ioctl(fd,LED3,IOCTL_LED_ON)。 break。 case 3: ioctl(fd,LED4,IOCTL_LED_ON)。 break。 default: break。 } } else if (!strcmp(argv[2], off)) { //關(guān)燈 switch(led_no) { case 0: ioctl(fd,LED1,IOCTL_LED_OFF)。 break。 case 1: ioctl(fd,LED2,IOCTL_LED_OFF)。 break。 case 2: ioctl(fd,LED3,IOCTL_LED_OFF)。 break。 case 3: ioctl(fd,LED4,IOCTL_LED_OFF)。 break。 default: break。 } }測(cè)試程序編寫(xiě)完畢后,一般的linux系統(tǒng)環(huán)境下只需通過(guò)armlinuxgcc交
點(diǎn)擊復(fù)制文檔內(nèi)容
規(guī)章制度相關(guān)推薦
文庫(kù)吧 www.dybbs8.com
備案圖片鄂ICP備17016276號(hào)-1