栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C#

初出茅庐的小李第85篇博客之STM32寄存器操作模板编写

C/C++/C# 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

初出茅庐的小李第85篇博客之STM32寄存器操作模板编写

操作寄存器有
#1.GPIO  端口模式寄存器      (GPIOx_MODER)   (x = A..I)
#2.GPIO  端口输出类型寄存器  (GPIOx_OTYPER)  (x = A..I)
#3.GPIO  端口输出速度寄存器  (GPIOx_OSPEEDR) (x = A..I)
#4.GPIO  端口上拉/下拉寄存器 (GPIOx_PUPDR)   (x = A..I)
#5.GPIO  端口输入数据寄存器  (GPIOx_IDR)     (x = A..I)
#6.GPIO  端口输出数据寄存器  (GPIOx_ODR)     (x = A..I)
#7.GPIO  端口置位/复位寄存器 (GPIOx_BSRR)    (x = A..I)
#8.GPIO  端口配置锁定寄存器  (GPIOx_LCKR)    (x = A..I)
#9.GPIO  复用功能低位寄存器  (GPIOx_AFRL)    (x = A..I)
#10.GPIO 复用功能高位寄存器  (GPIOx_AFRH)    (x = A..I)
操作方法如下

GPIOx->MODER   &= ~(0x3<<(2*PIN_NUM));
GPIOx->MODER   |=  (0x0<<(2*PIN_NUM));


GPIOx->MODER   &= ~(0x3<<(2*PIN_NUM));
GPIOx->MODER   |=  (0x1<<(2*PIN_NUM));


GPIOx->MODER   &= ~(0x3<<(2*PIN_NUM));
GPIOx->MODER   |=  (0x2<<(2*PIN_NUM));


GPIOx->MODER   &= ~(0x3<<(2*PIN_NUM));
GPIOx->MODER   |=  (0x3<<(2*PIN_NUM));



GPIOx->OTYPER  &= ~(0x1<<(PIN_NUM));
GPIOx->OTYPER  |=  (0x0<<(PIN_NUM));


GPIOx->OTYPER  &= ~(0x1<<(PIN_NUM));
GPIOx->OTYPER  |=  (0x0<<(PIN_NUM));


 



GPIOx->OSPEEDR &= ~(0x3<<(2*PIN_NUM));
GPIOx->OSPEEDR |=  (0x0<<(2*PIN_NUM));

GPIOx->OSPEEDR &= ~(0x3<<(2*PIN_NUM));
GPIOx->OSPEEDR |=  (0x1<<(2*PIN_NUM));

GPIOx->OSPEEDR &= ~(0x3<<(2*PIN_NUM));
GPIOx->OSPEEDR |=  (0x2<<(2*PIN_NUM));

GPIOx->OSPEEDR &= ~(0x3<<(2*PIN_NUM));
GPIOx->OSPEEDR |=  (0x3<<(2*PIN_NUM));







GPIOx->PUPDR   &= ~(0x3<<(2*PIN_NUM));
GPIOx->PUPDR   |=  (0x0<<(2*PIN_NUM));

GPIOx->PUPDR   &= ~(0x3<<(2*PIN_NUM));
GPIOx->PUPDR   |=  (0x1<<(2*PIN_NUM));

GPIOx->PUPDR   &= ~(0x3<<(2*PIN_NUM));
GPIOx->PUPDR   |=  (0x2<<(2*PIN_NUM));



((GPIOx->IDR&(0x1<>PIN_NUM))

GPIOx->ODR     &= ~(0x1<ODR     |=  (0x0<ODR     &= ~(0x1<ODR     |=  (0x1<BSRR    &= ~(0x1<<(16+PIN_NUM));
GPIOx->BSRR    |=  (0x1<<(16+PIN_NUM));


GPIOx->BSRR    &= ~(0x1<BSRR    |=  (0x1<AFRL    &= ~(0x1<<16);
GPIOx->AFRH    &=  (0x0<<16);

GPIOx->LCKR    &= ~(0x1<<16);
GPIOx->LCKR    |=  (0x1<<16);


GPIOx->AFRL    &= ~(0xf<<(4*PIN_NUM));
GPIOx->AFRL    |=  ((AF_NUM)<<(4*PIN_NUM));


GPIOx->AFRH    &= ~(0xf<<(4*(PIN_NUM-8)));
GPIOx->AFRH    |=  ((AF_NUM)<<(4*(PIN_NUM-8)));

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/589199.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号