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

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

STM32 GPIO BRR和BSRR寄存器

作者:CNTSW   來源:CNTSW的博客   點擊數:  更新時間:2014年06月03日   【字體:

 使用BRR和BSRR寄存器可以方便地快速地實現對端口某些特定位的操作,而不影響其它位的狀態。

比如希望快速地對GPIOE的位7進行翻轉,則可以:

GPIOE->BSRR = 0x80; // 置'1'
GPIOE->BRR = 0x80; // 置'0'

如果使用常規'讀-改-寫'的方法:

GPIOE->ODR = GPIOE->ODR | 0x80; // 置'1'
GPIOE->ODR = GPIOE->ODR & 0xFF7F; // 置'0'

有人問是否BSRR的高16位是多余的,請看下面這個例子:

假如你想在一個操作中對GPIOE的位7置'1',位6置'0',則使用BSRR非常方便:
  GPIOE->BSRR = 0x00400080;

如果沒有BSRR的高16位,則要分2次操作,結果造成位7和位6的變化不同步!
  GPIOE->BSRR = 0x80;
  GPIOE->BRR = 0x40;

規則:

一、置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;// 使用規則一和規則二

如果中斷中要對IO口設置,最好使用BSRR和BRR操作,而不要用ODR .

http://m646208823.blog.163.com/blog/static/166902953201293132522237/

關閉窗口

相關文章

主站蜘蛛池模板: 日本在线视频一区二区 | 婷婷福利视频导航 | 午夜激情影院 | 欧美精品1区2区3区 精品国产欧美一区二区 | 91av在线电影 | 国产在线观看一区二区 | 亚洲欧美在线视频 | 99久久99 | av一区二区三区在线观看 | 国产www成人 | 丁香婷婷综合激情五月色 | 99小视频| 五月婷婷激情网 | 国产精品99久久免费观看 | 欧美精品在线播放 | 精品无码久久久久久久动漫 | 亚洲电影成人 | 日韩精品一区二区三区第95 | 亚洲欧美在线观看 | 日韩在线精品视频 | 亚洲午夜精品一区二区三区 | 欧美八区 | 久久综合九九 | 亚洲精品亚洲人成人网 | 91福利电影在线观看 | 一级欧美一级日韩片 | 欧美日韩精品中文字幕 | 日本久久一区二区三区 | 久久999| 久久亚洲一区二区三区四区 | 在线免费观看欧美 | 欧美激情亚洲激情 | 欧美一区视频在线 | 久久久久久蜜桃一区二区 | 中文字幕动漫成人 | 国产在线一区二区 | 国产精品久久7777777 | 一区二区三区四区在线视频 | 亚洲在线一区 | 欧美成人h版在线观看 | 成人午夜激情 |