STM32C8T6之使用寄存器点亮LED灯

这几天肺炎闹得沸沸扬扬,我窝在家里学习STM32。这篇博客筹备了3-4天吧,终于完成了。
实验电路如下图所示:
在这里插入图片描述
这里以PC13为例。
用寄存器点亮LED灯,主要就是操作GPIOx_ODR寄存器,GPIOx_CRH寄存器,RCC_APB2ENR寄存器。主要是涉及到指针操作,偏移。其他的也没什么。
下面我们来写代码:

//打开GPIOC端口的时钟                              //PC13
 *(unsigned int *)0x40021018 |= ( 1 << 4 );        //将0x40021018强制类型转换成指针,进行指针操作。
 
 //配置 IO口为输出,配置GPIOx_CRH寄存器。通用推挽输出模式,速度为10M。
  *(unsigned int *)0x40011004 |= ( 1 << (4*5) ); 
  
  //控制 ODR 寄存器,
 *(unsigned int *)0x4001100C &= ~( 1 << 13 );            //APB2上的GPIOC的起始地址加上偏移地址

以上代码都是写在main.c文件中的。时钟部分要注意的是APB2和APB1是挂载到AHB上的,寻找起始地址是不再是GPIO端口C的起始地址了。另外一定要加上偏移地址。
如此就能点亮灯了。
希望大佬指点一二。
最后祝大家在新的一年身体健康,平安无事!

  • 4
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值