STM32如何点灯

首先,得找时钟频率,LED0,LED1为PF8/9,D3和D4为PE13/14

        找他们的物理地址0x40023800 + 0X30

d0和d1的是位5 gpiofen,置为1,d2和d3是位4

所以得定义一个物理地址

#define  MY_RCC_AHB1_ENR  (*(unsigned long*)(0x40023800+0x30))

//开启GPIOE和GPIOF组的时钟脉冲,把[4:5] 设置为 11

        MY_RCC_AHB1_ENR  |= 3<<4;

其次,设置他们的引脚,9号,10号

//GPIOE组的起始地址是 0x40021000
#define  MY_GPIOE_MODE        (*(unsigned long*)(0x40021000+0x00))
//GPIOF组的起始地址是 0x40021400
#define  MY_GPIOF_MODE        (*(unsigned long*)(0x40021400+0x00))

//设置GPIOE组的13和14号引脚为输出模式  [26:29]  0101

//先清空,再设置引脚为1
        MY_GPIOE_MODE &=  ~( 0xF << 26);
        MY_GPIOE_MODE |=  0x05 << 26;
//设置GPIOF组的9号和10引脚为输出模式  0101
        MY_GPIOF_MODE  &=  ~(0xF<<18);//把[18:21]bit清零
        MY_GPIOF_MODE  |=  0x5<<18;//把[18:21]bit写成   0101

最后设置点灯低电平

#define  MY_GPIOE_ODR            (*(unsigned long*)(0x40021000+0x14))
#define  MY_GPIOF_ODR            (*(unsigned long*)(0x40021400+0x14))

//设置GPIOE组的13和14号引脚为低电平  [13:14]bit设置为 00
        MY_GPIOE_ODR &= ~(0x3<<13);
//设置GPIOF组的9号和10号引脚输出 低电平
        MY_GPIOF_ODR     &=  ~(3<<9);
    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值