13-寄存器编写程序入门

与51单片机对比,32单片机控制寄存器要复杂的多;在51单片机中,可以直接控制端口的高低电平;然而32单片机却不可以,因为32为了减小功耗,默认情况下这些时钟都是关闭的,需要打开才能使用;同时它的使用模式也有多种;只用在配置好端口之后才能进行控制。

1:下面以stm32单片机为例:初步学习通过寄存器控制GPIO的方法:

#include  "stm32f4xx.h"
int main ()
{
	//有很多外设,默认情况下这些外设时钟都是关闭的
	//降低功耗,有专门的外设控制,复位时钟控制
	//AHB1外设复位

	//第一步:打开GPIOF5的时钟
	*(unsigned int *)(0x40023800+0x30)|=(1<<5);


	//第二步:控制GPIO口的方向----GPIOF配置为输出
*(unsigned int *)(0x40021400+0x00)&=~((0x03)<<(2*9));	
*(unsigned int *)(0x40021400+0x00)|=(1<<(2*9));	
	
	
	//第三步:控制GPIO的数据输出寄存器----PF9输出高电平
     *(unsigned int *)(0x40021400+0x14)|=(1<<9);	
	//PF9输出低电平
	*(unsigned int *)(0x40021400+0x14)&=~(1<<9);
}
void SystemInit(void)
{
		//骗过编译器不报错
}

2:下面通过库函数控制GPIOF9输出

		//第一步:打开GPIOF的时钟(之所以是左移5位,是因为ABCE
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值