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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

void IO_IN_UpData(void) 這C語言函數其中的邏輯關系 有大佬能指點下嗎?

[復制鏈接]
跳轉到指定樓層
樓主
ID:826942 發表于 2022-3-13 10:01 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. #include <common.h>

  2. #define IO_ON            1
  3. #define IO_OFF          0

  4. GPIO_TypeDef *IO_OUT_GPIOx[1] = {GPIOB};
  5. uint16_t IO_OUT_GPIO_Pin[1] = {GPIO_Pin_9};
  6. BitAction IO_OUT_BitVal[1] = {Bit_RESET};

  7. uint8_t IO_IN_value[16];

  8. void IO_Init(void)
  9. {
  10.     uint8_t i;
  11.     for(i = 0; i < 16; i++)   
  12.     IO_IN_value[i] = IO_OFF;
  13. }

  14. uint8_t* IO_GetDate()   //16位IO口的數據
  15. {
  16.     static uint8_t IN[16];//C不支持在函數外返回局部變量地址,除非定義局部變量為static
  17.     IN[0] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_6);
  18.     IN[1] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_7);
  19.     IN[2] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_0);
  20.     IN[3] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_1);
  21.     IN[4] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_10);
  22.     IN[5] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_11);
  23.     IN[6] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_12);
  24.     IN[7] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_13);
  25.     IN[8] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_14);
  26.     IN[9] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_15);
  27.     IN[10] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_8);
  28.     IN[11] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_11);
  29.     IN[12] = GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_12);
  30.     IN[13] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_5);
  31.     IN[14] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_6);
  32.     IN[15] = GPIO_ReadInputDataBit(GPIOB, GPIO_Pin_7);
  33.     return IN;
  34. }

  35. void IO_IN_UpData(void)   //這個函數不是很明白其中的邏輯關系 有大佬能指點下嗎?
  36. {
  37.     uint8_t i;
  38.     uint8_t *In_Buf;
  39.     static uint8_t IO_in_Buf[16];   //16位數據緩存
  40.     In_Buf = IO_GetDate();   //把獲取的16位IO口數據給緩存

  41.     for(i = 0; i < 16; i++)
  42.     {
  43.         IO_in_Buf[i] = IO_in_Buf[i] << 1;  //沒得到一位數據左移一位
  44.         IO_in_Buf[i] &= 0x3f;      
  45.         if((*(In_Buf+i)) == 0x01)
  46.         {
  47.             IO_in_Buf[i] |= 0x01; //為什么
  48.         }
  49.     }
  50.     for(i = 0; i < 16; i++)
  51.     {
  52.         if(IO_in_Buf[i] == 0)
  53.         {
  54.             IO_IN_value[i] = IO_OFF;
  55.         }
  56.         else if(IO_in_Buf[i] == 0x3f)
  57.         {
  58.             IO_IN_value[i] = IO_ON;
  59.         }
  60.     }
  61. }

  62. void IO_OUT_UpData(uint8_t add,uint8_t size,uint8_t *Mode,BitAction shanshuo)//(地址   大小  模式  閃爍)
  63.         //bitactiion就是一個枚舉類型的變量,表示這個位是高電平還是低電平
  64. {
  65.     uint8_t i = 0;
  66.     for(i = add;i < (add + size);i++)  //首地址+長度  累加
  67.     {
  68.         if(Mode[i] == 2)
  69.         {
  70.             IO_OUT_BitVal[i] = shanshuo;  //模式為2 閃爍
  71.         }
  72.         else if(Mode[i] == 1)
  73.         {
  74.             IO_OUT_BitVal[i] = Bit_SET; //模式為1 高電平
  75.         }
  76.         else
  77.         {
  78.             IO_OUT_BitVal[i] = Bit_RESET;  //其他為低電平
  79.         }
  80.         GPIO_WriteBit(IO_OUT_GPIOx[i], IO_OUT_GPIO_Pin[i], IO_OUT_BitVal[i]);  //寫入GPIO的針腳的電平狀態
  81.     }
  82. }

  83. void IO_PowerRun(void)
  84. {
  85.     uint8_t power_mode = 2;  //電源模式為2
  86.     static BitAction LED_shanshuo = Bit_RESET;   //LED閃爍 置0
  87.     if(Bit_RESET == LED_shanshuo)
  88.     {
  89.         LED_shanshuo = Bit_SET;       //為0置1
  90.     }
  91.     else
  92.     {
  93.         LED_shanshuo = Bit_RESET;      //為1置0   閃爍
  94.     }
  95.     IO_OUT_UpData(0,1,&power_mode,LED_shanshuo);   //為什么沒有延遲
  96. }
復制代碼
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:826942 發表于 2022-3-13 10:02 | 只看該作者
里面的備注是我自己的理解加的 如果有錯誤希望大佬指正
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲国产成人精品久久久国产成人一区 | 日皮视频免费 | 仙人掌旅馆在线观看 | 国产精品久久久久久久岛一牛影视 | 国产日韩视频 | 国产精品久久久久久久免费观看 | 亚洲综合在线一区二区 | 自拍 亚洲 欧美 老师 丝袜 | 97久久久| 中文字幕在线看人 | 九九热国产精品视频 | 欧美日韩国产一区二区三区 | 成人精品国产一区二区4080 | 91啪亚洲精品| 久久y| 99re在线视频观看 | 中文字幕第100页 | 免费国产黄 | 91在线一区二区 | 久久精品国产亚洲 | 在线观看免费国产 | 99热这里有精品 | 成人免费视频网站在线看 | 超碰在线97国产 | 免费日韩av | 一区二区国产精品 | 日本在线黄色 | 91av在线免费观看 | av黄色在线| 国产黄色麻豆视频 | 中文字幕 在线观看 | 亚洲综合色丁香婷婷六月图片 | 日韩欧美在线一区 | 日韩不卡一区二区 | 国产精品国产精品 | 99re99| 自拍偷拍中文字幕 | 亚洲一区二区免费视频 | 久久久久久久久久久久久久久久久久久久 | 国产精品久久欧美久久一区 | 九九九视频精品 |