久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

標題: CC2530與pn532連接傳輸數據源程序 [打印本頁]

作者: hahazhoutie4    時間: 2021-2-3 20:20
標題: CC2530與pn532連接傳輸數據源程序
1、引腳連接
PN532 VCC-----CC2530 5V

PN532 GND-----CC2530 GND

PN532 SCL(RX)-----CC2530 P1_6引腳(TX)(uart1模式)

PN532 SDA(TX)-----CC2530 P1_7引腳(RX)(uart1模式)

2、PN532模式切換

切換為HSU 0-0

引腳連接及HSU模式如下圖(CC2530引腳自己連接)



3、數據傳輸

開啟CC2530 UART0及UART1串口,UART0用usb連接電腦串口顯示PN532回復數據,UART1傳輸CC2530至pn532的命令,目前主要是激活命令{0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xfd, 0xd4, 0x14, 0x01, 0x17, 0x00}和尋卡命令{0x00 ,0x00 ,0xFF ,0x04 ,0xFC ,0xD4 ,0x4A ,0x02 ,0x00 ,0xE0 ,0x00}

4、代碼見附件
  1. #include <ioCC2530.h>
  2. #include <string.h>

  3. typedef unsigned char uchar;
  4. typedef unsigned int uint;
  5. #define LED P1_0
  6. #define LCD_RX P1_7      /* s---TX/   --- RX P1_7--m*/
  7. #define LCD_TX  P1_6    /* s---RX    ----TX  P1_6--m*/

  8. uchar ack_frame[]={0x00,0x00,0xFF,0x00,0xFF,0x00};
  9. uchar send_command_1[] ={0x55, 0x55, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0xff, 0x03, 0xfd, 0xd4, 0x14, 0x01, 0x17, 0x00};
  10. uchar send_command_2[] = {0x00 ,0x00 ,0xFF ,0x04 ,0xFC ,0xD4 ,0x4A ,0x02 ,0x00 ,0xE0 ,0x00};

  11. void InitUart(void){
  12.     P0SEL |= 0x0E;         
  13.     P2DIR &= ~0XC0;        
  14.     U0CSR |= 0x80;    // uart mode
  15. //   U0CSR |= 0x40;    // re interrupt enable
  16.     U0GCR |= 11;                                       
  17.     U0BAUD |= 216;         
  18.     UTX0IF = 0;         
  19. //   URX0IF = 0;
  20. }


  21. void uart(char Data)
  22. {
  23.         U0DBUF = Data;
  24.         while(UTX0IF == 0);
  25.         UTX0IF = 0;
  26. }
  27.       

  28. void UartSendString_PN(char *Data, int len)
  29. {
  30.     uint i;
  31.     for(i=0; i<len; i++)
  32.     {
  33.         U1DBUF = *Data++;
  34.         while(UTX1IF == 0);
  35.         UTX1IF = 0;
  36.     }
  37. }

  38. void UartSendString(char *Data, int len)
  39. {
  40.     uint i;
  41.    
  42.     for(i=0; i<len; i++)
  43.     {
  44.         U0DBUF = *Data++;
  45.         while(UTX0IF == 0);
  46.         UTX0IF = 0;
  47.     }
  48. }


  49. void delayMS(){
  50. for(uchar i =0 ;i<100;i++)
  51.   for(uchar j =0 ;j<50;j++);
  52. }


  53. void main()
  54. {
  55.       CLKCONCMD &= ~0x40;               //
  56.     while(CLKCONSTA & 0x40);          //
  57.     CLKCONCMD &= ~0x47;               //32MHZ  
  58.     PERCFG |= 0x02;              //
  59.     InitUart();
  60.        P1SEL |= 0xC0;    //1_7  1_6   WAISHE IO
  61.        P1DIR |=0X01;     //1_0 LED
  62.       U1BAUD |= 0xD8;        // baud_m 216
  63.       U1GCR |= 0x0B;        // Set baud_e 11   115200bps
  64.       U1CSR |= 0xC0;        // uart mode  ENABLE RE
  65.       U1UCR &=0xf3;       //stop bit --1bit   DISABLE Parity
  66.       U1GCR &= ~0x60;         //LSB
  67.       UTX1IF =0;   // UART1 TX interrupt signal reset
  68.       URX1IE = 1;       // UART1 TX interrupt enable
  69.       EA =1;
  70.       LED = 0;
  71.      UartSendString_PN(send_command_1,sizeof(send_command_1));
  72.       delayMS();
  73.       UartSendString_PN(send_command_2,sizeof(send_command_2));
  74.        delayMS();
  75. }

  76. uchar* chartohex(uchar v)
  77. {
  78.   uchar n[5];
  79.   n[0]=48;
  80.   n[1]=120;
  81.   uchar s1,s2;
  82.   if(((v>>4)+48)>57) s1= (v>>4)+71 ;
  83.   else   s1=(v>>4)+48;
  84.   if(((v&0x0f)+48)>57)  s2= (v&0x0f)+71;
  85.   else    s2=(v&0x0f)+48;   
  86.   n[2]=s1;
  87.   n[3]=s2;
  88.   n[4] = 44;
  89.     return n;
  90. }




  91. /****************************************************************************
  92. * 名    稱: UART1_ISR(void) 串口中斷處理函數
  93. * 描    述: 當串口1產生接收中斷,將收到的數據發送到串口
  94. ****************************************************************************/
  95. #pragma vector = URX1_VECTOR
  96. __interrupt void UART1_ISR(void)
  97. {
  98.     uchar tmp = U1DBUF;
  99.   uart(tmp);
  100. //  UartSendString(chartohex(tmp),5);
  101.     URX1IF = 0;       // 清中斷標志
  102. }


  103. /****************************************************************************
  104.   char iRxBuf = 0;
  105.   char RxBuf[];

  106. * 名    稱: UART0_ISR(void) 串口中斷處理函數
  107. * 描    述: 當串口0產生接收中斷,將收到的數據保存在RxBuf中

  108. #pragma vector = URX0_VECTOR
  109. __interrupt void UART0_ISR(void)
  110. {
  111.     if(U0DBUF == 35)  // # signal send rxbuf to pn532
  112.     {
  113.       UartSendString_PN(RxBuf,iRxBuf+1);
  114.     }else
  115.     {
  116.       RxBuf[iRxBuf]=U0DBUF;
  117.       iRxBuf++;
  118.     }
  119. //  UartSendString(chartohex(tmp),5);
  120.     URX0IF = 0;       // interrupt signal reset
  121. }
  122. ****************************************************************************/
復制代碼

以上代碼下載:
uart_硬件(測試通過).zip (27.33 KB, 下載次數: 18)





歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 国产精品成人久久久久 | 亚洲永久免费 | 久久99精品久久久久久国产越南 | 在线播放国产一区二区三区 | 国产精品久久久久久av公交车 | 亚洲在线日韩 | 日韩精品免费在线观看 | av网站免费在线观看 | 精品在线免费观看视频 | 国产我和子的乱视频网站 | 国产欧美在线一区二区 | 毛色毛片免费看 | 综合国产第二页 | 亚洲高清免费视频 | 爱爱小视频 | 国产999精品久久久久久绿帽 | 日本a级大片 | 综合精品 | 美国一级黄色片 | 欧美一区二区三区视频在线观看 | 日韩精品在线视频免费观看 | 人人爽日日躁夜夜躁尤物 | 国产精品色av | 久久久久久久一区二区三区 | 特一级毛片 | 99re在线| 欧美天堂 | 亚洲精品九九 | 国产一区不卡 | 米奇7777狠狠狠狠视频 | 粉嫩粉嫩芽的虎白女18在线视频 | 日韩在线综合网 | 在线只有精品 | 精品亚洲一区二区 | 最新免费黄色网址 | 久久狠狠| 国产一区久久久 | 国产精品久久久久久吹潮 | 日韩视频一区 | 日韩在线观看一区 | 欧美一区二区三区在线观看 |