OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 7620|回复: 10

库函数语句求翻译成寄存器版本

[复制链接]

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-5-16
在线时间
0 小时
发表于 2013-6-5 18:49:08 | 显示全部楼层 |阅读模式

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;//设置PA4
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;    //设置为推挽输出模式
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   //最大输出速率设为50MHz
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_ResetBits(GPIOA,GPIO_Pin_4);                   //PA4清0

 

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5|GPIO_Pin_6;           //设置PA5,PA6
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;    //设置为浮空输入模式
GPIO_Init(GPIOA, &GPIO_InitStructure);
GPIO_SetBits(GPIOA,GPIO_Pin_5);                     //PA5置位
GPIO_SetBits(GPIOA,GPIO_Pin_6);                     //PA6置位

表示实在没时间从头学寄存器
急用,只能求助各位了

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-5 19:44:40 | 显示全部楼层
查一下手册,半小时能够搞定。
业余程序玩家。
回复 支持 反对

使用道具 举报

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2013-6-5 20:25:35 | 显示全部楼层
看了,但寄存器真是一点不懂,看不懂这语法
GPIOA->CRH&=0XFFFFFFF0; (这句什么意思?说是清除该端口之前的设置,但哪里标志端口号了?)
GPIOA->CRH|=0X00000003;//PA8 推挽输出(哪里定义PA8了?推挽输出是哪里定义的?)     
GPIOA->ODR|=1<<8;      //PA8 输出高(这句我还能隐约猜出来,但还是不懂内部的意义)
  
GPIOD->CRL&=0XFFFFF0FF;
GPIOD->CRL|=0X00000300;//PD.2推挽输出
GPIOD->ODR|=1<<2;      //PD.2输出高
回复 支持 反对

使用道具 举报

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2013-6-5 20:56:34 | 显示全部楼层
各位点进来的前辈,我知道我这个问题非常浅显,您甚至都不屑花几分钟打那几行字,要么直接关掉页面,要么留下一句话让我自己去学去看。
但我现在寄存器基础真得可以说是0.之前所有的学习STM32都是建立在库函数与例程上的,我现在去看寄存器真得是非常吃力,而且明天我就要用这个程序了,现在就死死的卡在这几行上。
我求各位前辈能够帮我这一回,让我把明天的关先过了,好吗?
回复 支持 反对

使用道具 举报

230

主题

1950

帖子

10

精华

论坛元老

Rank: 8Rank: 8

积分
4562
金钱
4562
注册时间
2010-12-14
在线时间
32 小时
发表于 2013-6-5 20:57:47 | 显示全部楼层
直接查看函数就可以了。。。‘
进入函数定义。
里面就有
我是开源电子网?网站管理员,对网站有任何问题,请与我联系!QQ:389063473Email:389063473@qq.com
回复 支持 反对

使用道具 举报

57

主题

431

帖子

1

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
886
金钱
886
注册时间
2011-12-25
在线时间
12 小时
发表于 2013-6-5 22:18:25 | 显示全部楼层
回复【4楼】kingsoft:
---------------------------------
看一下GPIO  初始化的程序就知道了。。
很喜爱电子行业
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-5 23:46:46 | 显示全部楼层
好吧,请打开随附资料《STM32中文参考手册_V10》第八章“通用和复用功能I/O“第二小节“GPIO寄存器描述”(P113),便可以找到对寄存器CRH、CRL、ODR等的说明了。

先说CRH和CRL:每个引脚的配置位有4个,16个引脚共需64个控制位,也即2个32位寄存器CRH和CRL。



再说ODR:端口输出数据寄存器,每个位分别用于设置引脚0~15的输出值。
业余程序玩家。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-5 23:57:54 | 显示全部楼层
回复【3楼】kingsoft:
看了,但寄存器真是一点不懂,看不懂这语法 
---------------------------------
GPIOA->CRH&=0XFFFFFFF0; (这句什么意思?说是清除该端口之前的设置,但哪里标志端口号了?) 
GPIOA->CRH|=0X00000003;//PA8 推挽输出(哪里定义PA8了?推挽输出是哪里定义的?)      

这2个语句使CRH的低四位改变为3而不改变其他位。因为CRL用于设置Pin0~Pin7,CRH用于设置Pin8~Pin15,所以CRH的低四位用于设置Pin8。
再看我前面的图,可知3的含义是:设置PA8引脚为输出模式50MHz,通用推挽输出。
 
GPIOD->CRL&=0XFFFFF0FF; 
GPIOD->CRL|=0X00000300;//PD.2推挽输出 

这个是设置PD2引脚的模式。
业余程序玩家。
回复 支持 反对

使用道具 举报

34

主题

805

帖子

4

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
1865
金钱
1865
注册时间
2011-3-29
在线时间
140 小时
发表于 2013-6-6 00:15:57 | 显示全部楼层
还是再给个答案吧:

GPIOD->CRL&=0XF000FFFF;  
GPIOD->CRL|=0X04430000;
GPIOD->BSRR=0x00100060;// 这个看手册去~
业余程序玩家。
回复 支持 反对

使用道具 举报

28

主题

98

帖子

0

精华

中级会员

Rank: 3Rank: 3

积分
230
金钱
230
注册时间
2013-5-13
在线时间
0 小时
发表于 2013-6-6 09:12:01 | 显示全部楼层
不错,对寄存器有了很大的提高
人类是地球的,但地球不是人类的
回复 支持 反对

使用道具 举报

10

主题

26

帖子

0

精华

初级会员

Rank: 2

积分
86
金钱
86
注册时间
2013-5-16
在线时间
0 小时
 楼主| 发表于 2013-6-6 18:33:34 | 显示全部楼层
回复【8楼】ofourme:
回复【3楼】kingsoft: 看了,但寄存器真是一点不懂,看不懂这语法  --------------------------------- GPIOA->CRH&=0XFFFFFFF0; (这句什么意思?说是清除该端口之前的设置,但哪里标志端口号了?)  GPIOA->CRH|=0X00000003;//PA8 推挽输出(哪里定义PA8了?推挽输出是哪里定义的?)       这2个语句使CRH的低四位改变为3而不改变其他位。因为CRL用于设置Pin0~Pin7,CRH用于设置Pin8~Pin15,所以CRH的低四位用于设置Pin8。 再看我前面的图,可知3的含义是:设置PA8引脚为输出模式50MHz,通用推挽输出。   GPIOD->CRL&=0XFFFFF0FF;  GPIOD->CRL|=0X00000300;//PD.2推挽输出  这
......
---------------------------------
多谢了!
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-18 22:58

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表