打印

新手LED灯点亮

[复制链接]
419|0
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
冰糖炖雪梨|  楼主 | 2020-4-3 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
视频教程点亮LED,PB0口输出低电平时绿灯亮,PB1口蓝灯亮,PB5红灯亮,写的代码想让三种颜色交替亮。
问题1,我写的代码执行起来正常,绿色和蓝色正常,但红色变成了橙色。
问题2,我看霸道开发板原理图LED D4和D5对应的是PF7和PF8,但看参考手册中RCC  APB2 外设复位寄存器中没有找到IOPF。
求各位指导一下 代码如下:
#include"stm32f10x.h"

void delay(unsigned int i)
{
  while(i--);
}

int main (void)
{
//打开GPIOB端口时钟
*( unsigned int *) 0x40021018 |= ( (1)<<3 );
while(1)
{
*( unsigned int *) 0x40010C00 |= ( (0x0f)<<(4*0) );
//配置IO口PB0为输出
*( unsigned int *) 0x40010C00 |= ( (1)<<(4*0) );
//控制ODR寄存器P0
*( unsigned int *) 0x40010C0C &= ~(1<<0);
    delay(900000);
*( unsigned int *) 0x40010C0C |=  (1<<0);
//配置IO口PB1为输出
*( unsigned int *) 0x40010C00 |= ( (1)<<(4*1) );
//控制ODR寄存器P1
*( unsigned int *) 0x40010C0C &= ~(1<<1);
  delay(900000);
*( unsigned int *) 0x40010C0C |= (1<<1);
//配置IO口PB5为输出
*( unsigned int *) 0x40010C00 |= ( (1)<<(4*5) );
//控制ODR寄存器P5
*( unsigned int *) 0x40010C0C &= ~(1<<5);
  delay(900000);
*( unsigned int *) 0x40010C0C |= (1<<5);
}
}
void SystemInit(void)
{
  
}

使用特权

评论回复

相关帖子

发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

430

主题

436

帖子

0

粉丝