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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2924|回復: 0
打印 上一主題 下一主題
收起左側

C_NXP_K60接收數據 代碼

[復制鏈接]
跳轉到指定樓層
樓主
C_NXP_K60接收數據 代碼

完整代碼下載:
C_NXP_K60接收數據.rar (1.63 MB, 下載次數: 10)




  1. #include "gpio.h"
  2. #include "common.h"
  3. #include "uart.h"
  4. #include "mcg.h"
  5. #include "packet.h"

  6. #include <string.h>
  7. #include <stdio.h>

  8. static Packet_t pktB; /* used for data anaysis */
  9. bool DataReceived = false;

  10. uint8_t ID;
  11. int16_t AccRaw[3];
  12. int16_t GyoRaw[3];
  13. int16_t MagRaw[3];
  14. float Eular[3];
  15. int32_t Pressure;

  16. void UART4_RX_TX_IRQHandler(void)
  17. {
  18.     uint8_t ch;
  19.     UART_Type *UARTx = (UART_Type*)UART4;

  20.     if(UARTx->S1 & UART_S1_RDRF_MASK)
  21.     {
  22.         ch = (uint8_t)UARTx->D;
  23.         Packet_Decode(ch);
  24.     }
  25.    
  26.     if(UARTx->S1 & UART_S1_OR_MASK)
  27.     {
  28.         ch = (uint8_t)UARTx->D;
  29.         UARTx->S1 |= UART_S1_OR_MASK;
  30.     }
  31. }


  32. void OnDataReceived(Packet_t *pkt)
  33. {
  34.     memcpy(&pktB, pkt, sizeof(Packet_t));
  35.     DataReceived = true;
  36. }


  37. int main(void)
  38. {
  39.     DelayInit();
  40.     DelayMs(10);
  41.    
  42.     /* 使用 D6 D7輸出結果 */
  43.     UART_Init(UART0_RX_PD06_TX_PD07, 115200);
  44.     printf("IMU receive demo\r\n");
  45.    
  46.     /* 使用E24 E25接收IMU數據 */
  47.     UART_Init(UART4_RX_PE25_TX_PE24, 115200);

  48.     Packet_t pktA; /* used for data receive */
  49.     Packet_DecodeInit(&pktA, OnDataReceived);
  50.    
  51.     /* open interrupt */
  52.     UART_SetIntMode(HW_UART4, kUART_IntRx, true);
  53.    
  54.     while(1)
  55.     {
  56.         if(DataReceived == true)
  57.         {
  58.             /* 按出廠默認輸出協議接收
  59.             輸出
  60.             0x5A+0xA5+LEN_LOW+LEN_HIGH+CRC_LOW+CRC+HIGH+ 0x90+ID(1字節) + 0xA0+Acc(加速度6字節) + 0xB0+Gyo(角速度6字節) + 0xC0+Mag(地磁6字節) + 0xD0 +AtdE(歐拉角6字節) + 0xF0+Pressure(壓力4字節)
  61.             */
  62.             if(pktB.buf[0] == kItemID) /* user ID */
  63.             {
  64.                 ID = pktB.buf[1];
  65.             }
  66.             
  67.             if(pktB.buf[2] == kItemAccRaw)  /* Acc raw value */
  68.             {
  69.                 memcpy(AccRaw, &pktB.buf[3], 6);
  70.             }
  71.             
  72.             if(pktB.buf[9] == kItemGyoRaw)  /* gyro raw value */
  73.             {
  74.                 memcpy(GyoRaw, &pktB.buf[10], 6);
  75.             }
  76.             
  77.             if(pktB.buf[16] == kItemMagRaw)  /* mag raw value */
  78.             {
  79.                 memcpy(MagRaw, &pktB.buf[17], 6);
  80.             }
  81.             
  82.             if(pktB.buf[23] == kItemAtdE)  /* atd E */
  83.             {
  84.                 Eular[0] = ((float)(int16_t)(pktB.buf[24] + (pktB.buf[25]<<8)))/100;
  85.                 Eular[1] = ((float)(int16_t)(pktB.buf[26] + (pktB.buf[27]<<8)))/100;
  86.                 Eular[2] = ((float)(int16_t)(pktB.buf[28] + (pktB.buf[29]<<8)))/10;
  87.             }
  88.             
  89.             if(pktB.buf[30] == kItemPressure)
  90.             {
  91.                 memcpy(&Pressure, &pktB.buf[31], 4);
  92.             }
  93.             
  94. //             printf("AccRaw: %d %d %d\r\n", AccRaw[0], AccRaw[1], AccRaw[2]);
  95. //             printf("GyoRaw: %d %d %d\r\n", GyoRaw[0], GyoRaw[1], GyoRaw[2]);
  96. //             printf("MagRaw: %d %d %d\r\n", MagRaw[0], MagRaw[1], MagRaw[2]);
  97.                printf("Angle:    %0.2f %0.2f %0.2f\r\n", Eular[0], Eular[1], Eular[2]);
  98. //             printf("Pressure: %d Pa\r\n", Pressure);
  99.              DataReceived = false;
  100.          }
  101.     }
  102. }

  103. void HardFault_Handler(void)
  104. {
  105.     printf("HardFault_Handler\r\n");
  106.     while(1);
  107. }
復制代碼


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩插插 | 成年人黄色免费视频 | 三级视频在线观看电影 | 成人免费三级电影 | 亚洲免费片 | 亚洲精品国产一区 | 成人av一区二区三区 | 久久精品一 | 91资源在线 | 精品国产乱码久久久久久牛牛 | 一区观看 | 一区二区三区视频在线观看 | 国产99久久久国产精品 | av免费看在线 | 国产一区二区高清在线 | 国产精品久久久久久久久久免费看 | 日本精品一区二区三区视频 | 美女福利网站 | 天天影视网天天综合色在线播放 | 国产亚洲精品区 | 日本一二三区在线观看 | 中文字幕在线一区二区三区 | 又爽又黄axxx片免费观看 | 国产精品中文 | 在线播放国产一区二区三区 | 中文字幕一级 | 国产一区二区三区四区 | 97精品超碰一区二区三区 | 亚洲免费在线视频 | 久久狠狠 | 亚洲欧美一区二区三区国产精品 | 国产精品久久久久久久久久免费看 | 国产成人短视频在线观看 | 国产伊人久久久 | 国产视频二区 | 成人在线激情 | 成人一区二区三区在线观看 | 国产高清在线视频 | 国产精品欧美一区二区 | 国产小视频精品 | 欧亚av在线|