国产毛片a精品毛-国产毛片黄片-国产毛片久久国产-国产毛片久久精品-青娱乐极品在线-青娱乐精品

USB學習二:讀取ID值

發布時間:2016-2-24 09:56    發布者:designapp
關鍵詞: USB , PDIUSBD12
  題記:熟悉了PDIUSBD12的硬件電路后,就應該進入USB的軟件編程部分了。我想大家在初學USB時都會遇到和我一樣的困惑:拿起USB協議的相關文檔埋頭苦看,看半天還是什么又枚舉又配置的看是看了,可是回頭來好像什么都不懂;理論不行咱就動手吧,可是一找參考程序,可苦了咱,一上來就是一大堆的共同體,誰記得了啊,看了這個就忘了那個,到頭來和看書好像一個效果。貌似很復雜很龐大的USB驅動,呵呵,我們不能一次性消化你,我就肢解了你再消化!那么第一個軟件程序就來個最簡單的(圈圈都給我們寫好了程序了,還愁什么),對,就讀取D12的ID值。
  先了解下什么是ID(特權同學也是現學現賣,不好意思了):
  


  我也不是弄得特別懂,反正最后讀出來的ID=0x1012那就對了。
  還得做個說明,我用的不是圈圈的USB板子,外圍電路搭的也不一樣,而是如筆記一里把D12做外部RAM擴展用了。另外,由于手頭串口線恩多就是沒有一條合適的,所以通過串口精靈顯示的部分就簡單的改由1602LCD顯示ID值了。但是基本的思路都是相通的,要的就是這個!
  貼個主程序:
[color=]  ///////////////////////////////////////////////

[color=]  //函數:main

[color=]  //說明:主程序

[color=]  //入口:無

[color=]  //返回:無

[color=]  ///////////////////////////////////////////////

[color=]  void main(void)

[color=]  {

[color=]  init_lcd1602(); //初始化lcd1602

[color=]  while(1)

[color=]  {

[color=]  display_id(read_d12_id()); //讀取并顯示ID值

[color=]  }

[color=]  }

[color=]  主程序一貼就知道這個實驗會是超級簡單(入門嘛呵呵)。重點是來看USB的讀寫指令數據部分的驅動程序。

[color=]  先看宏定義:

[color=]  /*D12寄存器的地址分配*/

[color=]  /*xdata ----> 可尋址片外ram (64k地址范圍:0000H-FFFFH)*/

[color=]  #define D12_DATA 0xEFF0 //偶數是數據地址

[color=]  #define D12_COMMAND 0xEFF1 //奇數是命令地址

[color=]  上面為什么如此定義呢,因為筆記一里提到過,D12是被做外部RAM擴展了,P0口接的是D12的8bit數據端口,而CS_N被接到了P2.4口,所以尋址時CS_N一定必須為低,也即P2=EF,P2和P1就構成了外部RAM的地址。

[color=]  ///////////////////////////////////////////////

[color=]  //函數:write_d12

[color=]  //說明:把數據或者命令送入D12

[color=]  //入口:uint addr:送入D12的地址 D12_DATA或者D12_COMMAND

[color=]  // uchar dat:送入D12的數據或者指令

[color=]  //返回:無

[color=]  ///////////////////////////////////////////////

[color=]  void write_d12(uint addr, uchar dat)

[color=]  {

[color=]  *((uchar xdata *) addr) = dat;

[color=]  //addr就是外部RAM的地址,把dat賦給這個地址即可

[color=]  }

[color=]  ///////////////////////////////////////////////

[color=]  //函數:read_d12

[color=]  //說明:從D12讀出數據

[color=]  //入口:uint addr:送入D12的地址

[color=]  //返回:uchar *addr:返回一字節數據

[color=]  ///////////////////////////////////////////////

[color=]  uchar read_d12(uint addr)

[color=]  {

[color=]  return *((uchar xdata *) addr);

[color=]  //返回addr這個外部RAM上的數據,addr只能是D12_DATA

[color=]  }

[color=]  再來看讀取ID這個程序是如何實現的:

[color=]  ///////////////////////////////////////////////

[color=]  //函數:read_d12_id

[color=]  //說明:從D12讀出其ID

[color=]  //入口:無

[color=]  //返回:uint id:USB的ID值

[color=]  ///////////////////////////////////////////////

[color=]  uint read_d12_id(void)

[color=]  {

[color=]  uchar idtem1=0,idtem2=0;

[color=]  uint id="0";

[color=]  write_d12(D12_COMMAND,0xfd); //發送讀取ID的指令

[color=]  idtem1 = read_d12(D12_DATA); //讀第一個字節

[color=]  idtem2 = read_d12(D12_DATA); //讀第二個字節

[color=]  id = idtem1+(idtem2*256); //把連個字節賦給一個uint型變量

[color=]  return id; //返回讀出的ID值

[color=]  }
  顯示效果:
  


  挺簡單的程序,但是在這個程序中,可以明白單片機是如何往D12寫指令,然后緊跟著再讀或者寫數據。在這個基礎上,要實現一個完整的USB通訊,還要繼續在寫指令和讀寫數據上做文章,在對D12初始化后,重點是在于讀取D12中斷寄存器然后對其進行相應的操作。
                               
                                                               
                               
               
本文地址:http://www.qingdxww.cn/thread-161116-1-1.html     【打印本頁】

本站部分文章為轉載或網友發布,目的在于傳遞和分享信息,并不代表本網贊同其觀點和對其真實性負責;文章版權歸原作者及原出處所有,如涉及作品內容、版權和其它問題,我們將根據著作權人的要求,第一時間更正或刪除。
您需要登錄后才可以發表評論 登錄 | 立即注冊

廠商推薦

  • Microchip視頻專區
  • Dev Tool Bits——使用MPLAB® Discover瀏覽資源
  • Dev Tool Bits——使用條件軟件斷點宏來節省時間和空間
  • Dev Tool Bits——使用DVRT協議查看項目中的數據
  • Dev Tool Bits——使用MPLAB® Data Visualizer進行功率監視
  • 貿澤電子(Mouser)專區

相關視頻

關于我們  -  服務條款  -  使用指南  -  站點地圖  -  友情鏈接  -  聯系我們
電子工程網 © 版權所有   京ICP備16069177號 | 京公網安備11010502021702
快速回復 返回頂部 返回列表
主站蜘蛛池模板: 英语课强插英语课代表 | 四虎影院在线 | xx视频在线永久免费观看 | 99精品一区二区三区 | 丁香婷婷久久 | 欧美日日操| 国产日韩欧美亚洲精品95 | 在线九色| 日日夜夜视频 | 网站免费黄 | 亚洲色图综合 | 免费手机黄色网站 | 两个人高清视频免费观看www | 欧美成人免费网在线观看 | 99热精品在线 | 西西人体在线 | 可以免费观看的黄色网址 | 亚洲欧美在线免费观看 | 一级成人| 日韩高清在线日韩大片观看网址 | 天堂在线最新版资源www | 亚洲视频在线免费播放 | 日本久久久久久 | 久久精品国产400部免费看 | 国产精品剧情原创麻豆国产 | 国产成人91精品 | 91色拍| 日韩综合在线视频 | 香蕉欧美成人精品a∨在线观看 | 国产美女在线免费观看 | 日本一区二区三区在线 视频 | 久久网精品视频 | 97 在线播放| 四虎影视永久免费视频观看 | 国产福利一区二区在线观看 | 亚洲日本色| 日本久久久久久 | 免费污污视频网站 | 国产激情视频在线观看 | 国产免费私拍一区二区三区 | 国内自拍中文字幕 |