亚洲春色中文字幕久久久-三上亚,一吻二脱三床四吻胸,国产真实伦对白视频全集,在线毛片观看,精品成品入口黄网,国产毛aⅴ片久久久,亚洲AV色香蕉一区二区三区老师,萧皇后A级艳片,色情日本视频更新,99久久亚洲精品日本无码

專注電子技術學習與研究
當前位置:單片機教程網 >> STM32 >> 瀏覽文章

STM32 同一I/O口下 多個口同時操作

作者:未知   來源:互聯網   點擊數:  更新時間:2014年06月22日   【字體:

主要通過 GPIOx_BSRR 和GPIOx_BSR 兩個寄存器來實現


規則:
一、置GPIOD->BSRR低16位的某位為'1',則對應的I/O端口置'1';而置GPIOD->BSRR低16位的某位為'0',則對應的I/O端口不變。
二、置GPIOD->BSRR高16位的某位為'1',則對應的I/O端口置'0';而置GPIOD->BSRR高16位的某位為'0',則對應的I/O端口不變。
三、置GPIOD->BRR低16位的某位為'1',則對應的I/O端口置'0';而置GPIOD->BRR低16位的某位為'0',則對應的I/O端口不變。

例如:
1)要設置D0、D5、D10、D11為高,而保持其它I/O口不變,只需一行語句:
  GPIOD->BSRR = 0x0C21;// 使用規則一

2)要設置D1、D3、D14、D15為低,而保持其它I/O口不變,只需一行語句:
  GPIOD->BRR = 0xC00A;// 使用規則三

3)要同時設置D0、D5、D10、D11為高,設置D1、D3、D14、D15為低,而保持其它I/O口不變,也只需一行語句:
  GPIOD->BSRR = 0xC00A0C21;// 使用規則一和規則二

 

如果使用了PD口的PD8-PD15高8位,假設data為8位要寫入的數據:

GPIO_SetBits(GPIOD, data & 0xff00);
GPIO_ResetBits(GPIOD, (~data & 0xff00));

也可以直接操作這兩個寄存器:
GPIOD->BSRR = data & 0xff00;
GPIOD->BRR = ~data & 0xff00;

 

如果使用了PD口的PD0-PD7低8位,假設data為8位要寫入的數據:

GPIO_SetBits(GPIOD, data & 0x00ff);
GPIO_ResetBits(GPIOD, (~data & 0x00ff));

也可以直接操作這兩個寄存器:
GPIOD->BSRR = data & 0x00ff;
GPIOD->BRR = ~data & 0x00ff;

關閉窗口

相關文章