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

專(zhuān)注電子技術(shù)學(xué)習(xí)與研究
當(dāng)前位置:單片機(jī)教程網(wǎng) >> STM32 >> 瀏覽文章

STM32 GPIO BRR和BSRR寄存器

作者:CNTSW   來(lái)源:CNTSW的博客   點(diǎn)擊數(shù):  更新時(shí)間:2014年06月03日   【字體:

 使用BRR和BSRR寄存器可以方便地快速地實(shí)現(xiàn)對(duì)端口某些特定位的操作,而不影響其它位的狀態(tài)。

比如希望快速地對(duì)GPIOE的位7進(jìn)行翻轉(zhuǎn),則可以:

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

如果使用常規(guī)'讀-改-寫(xiě)'的方法:

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

有人問(wèn)是否BSRR的高16位是多余的,請(qǐng)看下面這個(gè)例子:

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

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

規(guī)則:

一、置GPIOD->BSRR低16位的某位為'1',則對(duì)應(yīng)的I/O端口置'1';而置GPIOD->BSRR低16位

的某位為'0',則對(duì)應(yīng)的I/O端口不變。

二、置GPIOD->BSRR高16位的某位為'1',則對(duì)應(yīng)的I/O端口置'0';而置GPIOD->BSRR高16位

的某位為'0',則對(duì)應(yīng)的I/O端口不變。

三、置GPIOD->BRR低16位的某位為'1',則對(duì)應(yīng)的I/O端口置'0';而置GPIOD->BRR低16位的

某位為'0',則對(duì)應(yīng)的I/O端口不變。

 

例如:

1)要設(shè)置D0、D5、D10、D11為高,而保持其它I/O口不變,只需一行語(yǔ)句:

  GPIOD->BSRR = 0x0C21;// 使用規(guī)則一

 

2)要設(shè)置D1、D3、D14、D15為低,而保持其它I/O口不變,只需一行語(yǔ)句:

  GPIOD->BRR = 0xC00A;// 使用規(guī)則三

 

3)要同時(shí)設(shè)置D0、D5、D10、D11為高,設(shè)置D1、D3、D14、D15為低,而保持其它I/O口不變

,也只需一行語(yǔ)句:

  GPIOD->BSRR = 0xC00A0C21;// 使用規(guī)則一和規(guī)則二

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

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

關(guān)閉窗口

相關(guān)文章

主站蜘蛛池模板: 久久精品国产99国产精品亚洲 | 龙珠z国语版在线观看 | 天堂男人av | 欧美激情亚洲激情 | 欧美日韩一区二区三区在线观看 | www.久| 岛国精品 | 日韩国产黄色片 | 国产精品久久久久久久久久久久冷 | 精品www | 日韩精品中文字幕在线 | 黄色综合| 久久久久久999 | 国产高清视频一区 | 精品国产一区二区三区日日嗨 | 99精品一区二区 | 欧美片网站免费 | 欧美一级毛片在线播放 | 亚洲视频免费在线观看 | 综合色播| 国产 日韩 欧美 在线 | 亚州春色| 久综合 | 日本精品视频 | 一级片网址 | 国产日韩欧美中文字幕 | 看羞羞视频 | 一区二区三区不卡视频 | 国产一区二区精品在线观看 | 在线免费观看黄色网址 | 国产 欧美 日韩 一区 | 国产欧美一区二区三区久久 | 欧美久久久久久久久 | 久久久999精品 | 国产视频久久久 | 欧美在线观看一区二区 | 久久久黑人 | 国产一区91精品张津瑜 | 久久亚洲综合 | 国产精品久久久久久久久久 | 久久精品亚洲欧美日韩久久 |