野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 9701|回复: 3

关于第九节-自己写库构建寄存器结构体定义灯灭不了的问题

[复制链接]
发表于 2017-4-17 19:34:44 | 显示全部楼层 |阅读模式
这是main.c的代码:(问题在红色部分)
#include "stm32F10x.h"

int main(void)
{
#if 0
       
        * (unsigned int*)0x40021018|=(1<<3);
       
        * (unsigned int*)0xc40010C00|=((1)<<(4*0));
       
   * (unsigned int*)0x40010C0C&=~(1<<0);
#elif 0

        RCC->APB2ENR|=(1<<3);
        //&#197;&#228;&#214;&#195;IO&#206;aê&#228;3&#246;
        GBIOB_CRL&=~((0x0f)<<(4*0));
        GBIOB_CRL|=((1)<<(4*0));
        //&#191;&#216;&#214;&#198;ODR&#188;&#196;′&#230;&#198;÷
   GBIOB_ODR&=~(1<<0);
#elif 1

        RCC->APB2ENR|=(1<<3);
       
        GBIOB->CRL&=~((0x0f)<<(4*0));
        GBIOB->CRL|=((1)<<(4*0));

   GBIOB->ODR&=~(1<<0);
        GBIOB->ODR|=(1<<0);//为什么写了这行代码灯还是亮点,看视频讲解应该是会灭的呀
#endif

}
void SystemInit(void)
{

下面是头文件的代码:
#define APB1_BASE     ((unsigned int)0X40000000)
#define APB2_BASE     (APB1_BASE+0X10000)
#define AHB_BASE     (APB2_BASE+0X10000)

#define GBIOB_BASE    (APB2_BASE+0X0C00)
#define RCC_BASE     (AHB_BASE+0X1000)

#define GBIOB_CRL     *(unsigned int*)(GBIOB_BASE+0x00)
#define RCC_APB2ENR   *(unsigned int*)(RCC_BASE+0x18)
#define GBIOB_ODR     *(unsigned int*)(GBIOB_BASE+0x0C)

typedef unsigned int      unit32;

typedef struct
{
unit32 CRL;
unit32 IDR;
unit32 ODR;
unit32 BSRR;
unit32 BRR;
unit32 LCKR;

}GBIOB_typedef;

#define GBIOB           ((GBIOB_typedef *)GBIOB_BASE)

typedef struct
{
unit32 CC;
unit32 CFGR;
unit32 CIR;
unit32 CAPB2RSTR;
unit32 APB1RETR;
unit32 AHBENR;
unit32 APB2ENR;
unit32 APB1ENR;
unit32 BDCR;
unit32 CSR;
}RCC_typedef;
#define RCC              ((RCC_typedef*)RCC_BASE)  


L5907(3C]CAOLYA2C3TS)F4.png
回复

使用道具 举报

发表于 2017-4-18 10:37:53 | 显示全部楼层
再认真看看吧            
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-4-18 15:38:49 | 显示全部楼层

嗯,我试了一下,发现换成GBIOB_ODR灯就灭了,用结构体指针的时候就没有,还有前面的作业,用GBIOBBRR和GBIOBSRR点亮LED灯,在用结构体指针GBIOB->BRR进行操作时,也会出现没有效果的问题,而换成寄存器映射操作时,就no problem了
回复 支持 反对

使用道具 举报

发表于 2017-5-13 00:12:59 | 显示全部楼层
好好看看头文件里面的宏定义,总线地址都没搞对,
回复 支持 反对

使用道具 举报

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

本版积分规则

联系站长|手机版|野火电子官网|野火淘宝店铺|野火电子论坛 ( 粤ICP备14069197号 ) 大学生ARM嵌入式2群

GMT+8, 2025-1-16 00:59 , Processed in 0.037107 second(s), 28 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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