野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 11631|回复: 28

入门程序求教

[复制链接]
发表于 2016-8-22 19:59:35 | 显示全部楼层 |阅读模式
就是一个点灯程序 为什么点不亮呢?程序如下:
  1. #include "stm32f4xx.h"
  2. #define PERIPH_BASE      ((unsigned int)0x40000000)
  3. #define AHB1PERIPH_BASE  (PERIPH_BASE+0x00020000)
  4. #define GPIOH_BASE       (AHB1PERIPH_BASE+0x00001c00)

  5. #define GPIOH_MODER      *(unsigned int *)(GPIOH_BASE+0x00)
  6. #define GPIOH_ODR        *(unsigned int *)(GPIOH_BASE+0x14)


  7. #define RCC_BASE               (AHB1PERIPH_BASE+0x00003800)
  8. #define RCC_AHB1ENR      *(unsigned int *)(RCC_BASE+0x30)




  9. int main()
  10. {
  11.         //time
  12.         RCC_AHB1ENR |= (1<<7);
  13.         
  14.         //PH10 output
  15.         GPIOH_MODER &= ~(3<<2*10);
  16.         GPIOH_MODER |= (1<<2*10);
  17.         
  18.         //PH10 down
  19.         GPIOH_ODR &= ~(1<<10);
  20.         
  21.         while(1);
  22. }

  23. void SystemInit()
  24. {
  25.         
  26. }
复制代码


回复

使用道具 举报

 楼主| 发表于 2016-8-23 19:35:20 | 显示全部楼层
问题解决了,仔细对比了以下魔术棒的配置之后发现自己没有勾选Use Micro LIB这一选项,至于原理表示根本不懂,以后知道了回来补。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-22 20:05:58 | 显示全部楼层
醉了 ,我这边网络延迟以为没发出去, 发了三次。。。。
回复 支持 反对

使用道具 举报

发表于 2016-8-22 20:14:38 | 显示全部楼层
输出模式( OTYPER)没有配置,这个应该不能少吧
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-22 20:20:47 | 显示全部楼层
随风 发表于 2016-8-22 20:14
输出模式( OTYPER)没有配置,这个应该不能少吧

这个是火哥例程,我看着和我的一样,可是效果就不一样。。。火哥的可以点亮小灯
/**
  * 新建工程模版—寄存器版本
        */
       
#include "stm32f4xx.h"

/* peripheral */
#define PERIPH_BASE            ((unsigned int)0x40000000)
#define AHB1PERIPH_BASE        (PERIPH_BASE+0x00020000)
#define GPIOH_BASE             (AHB1PERIPH_BASE+0x00001C00)


#define GPIOH_MODER            *(unsigned int *)(GPIOH_BASE+0X00)
#define GPIOH_ODR              *(unsigned int *)(GPIOH_BASE+0X14)

#define RCC_BASE              (AHB1PERIPH_BASE+0x00003800)
#define RCC_AHB1ENR            *(unsigned int *)(RCC_BASE+0X30)


int main(void)
{
        /* 使能GPIOH端口的时钟 */
        RCC_AHB1ENR |= (1<<7);
       
  /* PH10配置为输出 */
        GPIOH_MODER &= ~(3<<2*10);
        GPIOH_MODER |= (1<<2*10);
       
        /* PH10输出低电平 */
        GPIOH_ODR &= ~(1<<10);

        /* PH10输出低电平 */
        //GPIOH_ODR |= (1<<10);        
       
        while(1);
}

/* 函数为空,目的是为了骗过编译器不报错 */
void SystemInit(void)
{
       
}
回复 支持 反对

使用道具 举报

发表于 2016-8-22 21:02:24 来自手机 | 显示全部楼层
帮顶,再看看,肯定是可以解决的。哈哈。
回复 支持 反对

使用道具 举报

发表于 2016-8-22 22:59:44 | 显示全部楼层
寄存器学习适合入门,有点了解后可以考虑库开发,方便快捷。
回复 支持 反对

使用道具 举报

发表于 2016-8-23 08:52:08 | 显示全部楼层
和板子自带例程对比下  看看。。。。每个细节都不要放过。。。哪怕一个符号也可能导致错误
回复 支持 反对

使用道具 举报

发表于 2016-8-23 08:55:46 | 显示全部楼层
用你的程序测试了,可以点亮,没有问题,你是不是没有按板子的复位什么的
回复 支持 反对

使用道具 举报

发表于 2016-8-23 09:31:15 | 显示全部楼层
flyleaf 发表于 2016-8-23 08:55
用你的程序测试了,可以点亮,没有问题,你是不是没有按板子的复位什么的

我以后也要天天发程序上来。。。。。。。。
回复 支持 反对

使用道具 举报

发表于 2016-8-23 10:05:22 | 显示全部楼层
望蓝天 发表于 2016-8-23 09:31
我以后也要天天发程序上来。。。。。。。。

你现在已经学得这么深,那些问题我一般解决不了
回复 支持 反对

使用道具 举报

发表于 2016-8-23 10:56:09 | 显示全部楼层
flyleaf 发表于 2016-8-23 10:05
你现在已经学得这么深,那些问题我一般解决不了

我不信,我不信,我不信,,那都是因为你想偷懒,(或许忙)!!!!!
回复 支持 反对

使用道具 举报

发表于 2016-8-23 12:22:40 | 显示全部楼层
望蓝天 发表于 2016-8-23 10:56
我不信,我不信,我不信,,那都是因为你想偷懒,(或许忙)!!!!!

数学什么的理解不能啊
回复 支持 反对

使用道具 举报

发表于 2016-8-23 13:44:51 | 显示全部楼层
flyleaf 发表于 2016-8-23 12:22
数学什么的理解不能啊

不知道为什么,听到你说有不会的竟然开心想笑
回复 支持 反对

使用道具 举报

发表于 2016-8-23 13:49:10 | 显示全部楼层
望蓝天 发表于 2016-8-23 09:31
我以后也要天天发程序上来。。。。。。。。

好奸诈啊
回复 支持 反对

使用道具 举报

发表于 2016-8-23 15:56:58 | 显示全部楼层

大家都天天发程序,然后他就瞬间感觉世界好美好,生活很充实,很开心
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-23 18:24:12 | 显示全部楼层
flyleaf 发表于 2016-8-23 12:22
数学什么的理解不能啊

今天重新试了下发现我的问题不在程序本身,直接拷贝火哥的例程运行一切正确,把火哥的代码复制到我的工程里就失效了。。。新手一枚,表示一脸懵逼,是开发环境配置的问题吗?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-23 18:26:12 | 显示全部楼层
haizhiyin 发表于 2016-8-22 22:59
寄存器学习适合入门,有点了解后可以考虑库开发,方便快捷。

恩,现在看视频感觉库开发比寄存器省事儿多了
回复 支持 反对

使用道具 举报

发表于 2016-8-23 18:41:35 | 显示全部楼层
小火娃 发表于 2016-8-23 18:24
今天重新试了下发现我的问题不在程序本身,直接拷贝火哥的例程运行一切正确,把火哥的代码复制到我的工程 ...

嗯,对比下正常的工程,检查下配置
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-23 18:48:34 | 显示全部楼层
flyleaf 发表于 2016-8-23 18:41
嗯,对比下正常的工程,检查下配置

我现在的情况是只有火哥的例程能用,只要是自建工程,哪怕是全篇复制也不行,不报错,下到板子上也不运行。。。。。。这个该看那一块的配置啊?
回复 支持 反对

使用道具 举报

发表于 2016-8-23 19:54:18 来自手机 | 显示全部楼层
工程的某些配置你看一下,microlib有没选,优化等级是否一样等等。还有,把你不行的工程传上来,帮你看看。
回复 支持 反对

使用道具 举报

发表于 2016-8-23 19:55:51 来自手机 | 显示全部楼层
小火娃 发表于 2016-8-23 18:26
恩,现在看视频感觉库开发比寄存器省事儿多了

一开始讲寄存器是为了讲后面的库,就好像一开始讲内存的映射,就是为了讲寄存器编程。都是一环扣一环的,循序渐进的知识。
回复 支持 反对

使用道具 举报

发表于 2016-8-23 23:36:14 | 显示全部楼层
fire 发表于 2016-8-23 19:55
一开始讲寄存器是为了讲后面的库,就好像一开始讲内存的映射,就是为了讲寄存器编程。都是一环扣一环的, ...

了解了,谢谢火哥解答。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 15:19:58 | 显示全部楼层
fire 发表于 2016-8-23 19:54
工程的某些配置你看一下,microlib有没选,优化等级是否一样等等。还有,把你不行的工程传上来,帮你看看。

仔细对比了一下魔术棒的配置之后发现自己没有勾选Use Micro LIB这一选项。这一项有什么用啊?
回复 支持 反对

使用道具 举报

发表于 2016-8-24 15:21:31 | 显示全部楼层
小火娃 发表于 2016-8-24 15:19
仔细对比了一下魔术棒的配置之后发现自己没有勾选Use Micro LIB这一选项。这一项有什么用啊?

你确定勾选了这个是不是就可以了?
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 15:25:31 | 显示全部楼层
fire 发表于 2016-8-24 15:21
你确定勾选了这个是不是就可以了?

恩 勾了之后一切正常了
回复 支持 反对

使用道具 举报

发表于 2016-8-24 15:34:10 | 显示全部楼层
小火娃 发表于 2016-8-24 15:25
恩 勾了之后一切正常了

先勾上吧,我也不清楚,我有时候需要,有时候不需要。
回复 支持 反对

使用道具 举报

 楼主| 发表于 2016-8-24 18:19:17 | 显示全部楼层
fire 发表于 2016-8-24 15:34
先勾上吧,我也不清楚,我有时候需要,有时候不需要。

嗯嗯 好的
回复 支持 反对

使用道具 举报

发表于 2016-8-27 12:00:37 | 显示全部楼层
都是些细节问题
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-11-23 19:45 , Processed in 0.087792 second(s), 25 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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