野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 24815|回复: 2

关于直接操作STM32地址问题(第一节编程课)

[复制链接]
发表于 2020-5-23 19:35:16 | 显示全部楼层 |阅读模式
本帖最后由 浮云来客 于 2020-5-23 19:38 编辑

源代码,
#include "stm32f10x.h"  //STM32系统头文件
//startup_stm32f10x_md.s启动文件


/*开拓者开发版LED灯:LED0=PA8  LED1 =PD2  LED2=PC12
APB2外设时钟使能寄存器(RCC_APB2ENR) 0x18
RCC地址0x4002 1000 ,RCC在此总线上
GPIOA的起始映射地址为0x4001 0800   //GPIOC的起始映射地址为0x4001 1000
GPIOD的起始映射地址为0x4001 1400
端口配置低CRL(0x00)                 端口配置高 CRH(0x04)
端口输入数据IDR(0X08)                 端口输出数据ODR(0X0C)
端口位设置/清除BSRR(0X10)        端口位清除BRR(0x14)
端口配置锁定LCKR(0X18)

#define setbit(x,y) x|=(1<<y) //将x的第y位置1

#define clrbit(x,y) x&=~(1<<y) //将x的第y位清0

*/

int main (void) //主函数
{

#if 1
        *( unsigned int * )(0x40021000 + 0x18) |= (1<<2); //打开GPIOA的时钟

   *( unsigned int * )(0x40011000 + 0x00) |= (1<<(4*0)); //将CRL寄存器配置为0x0001,技术配置PA口为推挽输出,速度为10M

  *( unsigned int * )(0x40011000 + 0x0c) &= ~(1<<8);//(0x40010800 +0x0c)只是一个立即数,要让他是地址的话就必须强制类型转换(unsigned int *)转换为指针类型
  //直接操作寄存器地址ODR 控制PA8口,找到ODR的地址,为PA口的基地址加上ODR的偏移地址
//&= ~(1<<8),表示ODR寄存器的第8为清零,即PA8
#endif

}


void  SystemInit(void )
{
        //函数体为空,目的是为了骗过编译器不报错。
}



//以上是全部代码
/************************分割线*********************/
看的视频第7集。
按照视频操作来的,需要控制PA8口拉低。推挽输出,速度10M

采用的Keil 4编译的,下载器采用的是J-LINK V8 (这个只能用于Keil 4使用)

J-LINK配置如图所示。
启动文件如图所示。
新手小白。
现在问题是,用仿真器可以正常下载,下载成功后,LED0(即PA8口)并没有亮。
想知道问题出在哪里,是我配置出错了吗?


启启动文件配置

启启动文件配置

J-LINK配置1

J-LINK配置1

J-LINK配置2

J-LINK配置2
回复

使用道具 举报

 楼主| 发表于 2020-5-23 19:39:00 | 显示全部楼层
按照视频一步步的操作的,下载后无显示。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2020-5-23 20:37:10 | 显示全部楼层
问题解决了
代码如下
*( unsigned int * )(0x40021000 + 0x18) |= (1<<2); //打开GPIOA的时钟
       
        *( unsigned int * )(0x40010800 + 0x04) &=~((0x0f)<<(4*0)); //先要将CRL寄存器清零
    *( unsigned int * )(0x40010800 + 0x04) |= (1<<(4*0)); //将CRL寄存器配置为0x0001,技术配置PA口为推挽输出,速度为10M

    *( unsigned int * )(0x40011000 + 0x0c) &= ~(1<<8);//(0x40010800 +0x0c)只是一个立即数,要让他是地址的话就必须强制类型转换(unsigned int *)转换为指针类型
  //直接操作寄存器地址ODR 控制PA8口,找到ODR的地址,为PA口的基地址加上ODR的偏移地址
//&= ~(1<<8),表示ODR寄存器的第8为清零,即PA8
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-12-5 16:36 , Processed in 0.044177 second(s), 27 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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