专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
STM32
STM32 寄存器位操作
2019-07-14 23:33
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
STM32/STM8
7596
17
1570
STM32
的寄存器是 32位的 然而 操作也只能是以 32位的形式操作, 小弟想 单独对某一位操做 应该怎么做呢 就像8位的
单片机
一样可以写作PTA_PTA1=1(表示A口pin1置1). 用结构体联合体的方式应该怎么做呢??? 或者还有什么其他的办法。 谢谢各位。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
17条回答
邪帝-无痕
1楼-- · 2019-07-16 07:42
可以对IO口进行位绑定
加载中...
邪帝-无痕
2楼-- · 2019-07-16 08:02
#include "stm32f10x.h" #define GPIOA_ODR (GPIOA_BASE+0x0c) //ODRµØÖ· #define GPIOA_IDR (GPIOA_BASE+0x08) //IDRµØÖ· //¶ÔÓ¦IO¿ÚÒý½ÅÊäÈëÊä³öµØÖ· #define BitBand(Addr,BitNum) *((volatile unsigned long *)((Addr&0xf0000000)+0x2000000+((Addr&0xfffff)<<5)+(BitNum<<2))) #define PAout(n) BitBand(GPIOA_ODR,n) //Êä³öº¯Êý #define PAin(n) BitBand(GPIOA_IDR,n) //ÊäÈ뺯Êý int main(void) { GPIOA->CRL =0x33333333; GPIOA->CRH =0x44444444; while(1) { if(PAin(8)==1) PAout(0)=1; else PAout(0)=0; if(PAin(9)==1) PAout(1)=1; else PAout(1)=0; if(PAin(10)==1) PAout(2)=1; else PAout(2)=0; if(PAin(11)==1) PAout(3)=1; else PAout(3)=0; if(PAin(12)==1) PAout(4)=1; else PAout(4)=0; if(PAin(13)==1) PAout(5)=1; else PAout(5)=0; if(PAin(14)==1) PAout(6)=1; else PAout(6)=0; if(PAin(15)==1) PAout(7)=1; else PAout(7)=0; } }
加载中...
h1x2y3awalm
3楼-- · 2019-07-16 12:29
精彩回答 2 元偷偷看……
加载中...
explorer126
4楼-- · 2019-07-16 16:54
楼上的几位也没看懂啊。还是要学习。
加载中...
zexianxu
5楼-- · 2019-07-16 22:30
{:14:}{:14:}{:14:}{:14:}
加载中...
唯有风情
6楼-- · 2019-07-17 02:17
没错 用位绑定。 模板给你。供参考、使用。
#define GPIOA_ODR_A (GPIOA_BASE+0x0c) //定义GPIOd的A端口寄存器 ODR和IDR
#define GPIOA_IDR_A (GPIOA_BASE+0x08)
#define BitBand(Addr,BitNum) *((volatile unsigned long *)(Addr&0xF0000000)+0x20000000+((Addr&0xfffff)<<5)+(BitNum<<2)) //绑定地址公式
#define PAout(n) BitBand(GPIOA_ODR_A,n) //定义绑定第几个口
#define PAin(n) BitBand(GPIOA_IDR_A,n)
//(volatile unsigned long *) 指针变量类型
加载中...
上一页
1
2
3
下一页
一周热门
更多
>
相关问题
STM32F4上I2C(在PROTEUS中模拟)调试不通的问题
6 个回答
芯片供应紧张,准备换个MCU,MM32L系列替换STM32L系列的怎么样?
7 个回答
STM32同时使用两个串口进行数据收发时数据丢包的问题
5 个回答
STM32F103串口通信死机问题
4 个回答
STM32WLE5CC连接SX1268在LoRa模式下能与 SX1278互通吗?
2 个回答
STM32开发板免费用活动
7 个回答
stm32 处理 DHT11占用太多时间,大家程序是怎么设计的
8 个回答
分享一个STM32单片机做的离线编程器代码
9 个回答
相关文章
ST公司第一款无线低功耗单片机模块有效提高物联网设计生产效率
0个评论
如何实现对单片机寄存器的访问
0个评论
通过USB用STM32片内自带Bootloader下载程序及注意事项
0个评论
欲练此功必先自宫之STM32汇编启动,放慢是为了更好的前行
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
STM32
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
#define GPIOA_ODR_A (GPIOA_BASE+0x0c) //定义GPIOd的A端口寄存器 ODR和IDR
#define GPIOA_IDR_A (GPIOA_BASE+0x08)
#define BitBand(Addr,BitNum) *((volatile unsigned long *)(Addr&0xF0000000)+0x20000000+((Addr&0xfffff)<<5)+(BitNum<<2)) //绑定地址公式
#define PAout(n) BitBand(GPIOA_ODR_A,n) //定义绑定第几个口
#define PAin(n) BitBand(GPIOA_IDR_A,n)
//(volatile unsigned long *) 指针变量类型
一周热门 更多>