你的浏览器版本过低,可能导致网站不能正常访问!
为了你能正常使用网站功能,请使用这些浏览器。

新手求教,STM32跑马灯实验 编译通过 可以上传 LED灯就是不...

[复制链接]
GeekDog 提问时间:2018-5-30 11:13 /
    RT: STM32跑马灯实验 编译通过 可以上传 LED灯就是不亮。  小弟之前是专门搞硬件开发的,现,在想学学嵌入式,板子是自己做的,MCU用的是STM32F407VGT6。用J-link调试的。     
代码如下
2018-05-30 10_50_19-E__Uri_MDK PROJECT_Study_template-1_LED_USER_Template-1_LED..jpg 2018-05-30 10_50_40-E__Uri_MDK PROJECT_Study_template-1_LED_USER_Template-1_LED..jpg 2018-05-30 10_51_11-E__Uri_MDK PROJECT_Study_template-1_LED_USER_Template-1_LED..jpg

芯片设置如下
2018-05-30 10_51_25-E__Uri_MDK PROJECT_Study_template-1_LED_USER_Template-1_LED..jpg





收藏 评论15 发布时间:2018-5-30 11:13

举报

15个回答
xiajintaord 回答时间:2018-5-30 11:42:10
LED 灯部分的电路原理图传上来看一下

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

电子星辰 回答时间:2018-5-30 11:45:32
还没看见LED的问题,先说一个,我记得Target的Xtal是设置的外部晶振的频率,不是芯片的主频。你的晶振不会是168MHz的吧?

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

gz 回答时间:2018-5-30 11:59:05
兄弟,main函数里面没有配置系统时钟,看看配置一下结果如何;
你现在学习的话,最好学习HAL库,使用用STM32CubeMX软件

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

andey 回答时间:2018-5-30 12:03:50
提示: 作者被禁止或删除 内容自动屏蔽
wudianjun2001 回答时间:2018-5-30 12:46:09
新手的话建议找个现成的工程修改下,或者直接cube生成个工程,因为牵扯到好多系统文件

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

Tcreat 回答时间:2018-5-30 13:03:40
PCout的宏定义也要发出来看看

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

wenyangzeng 回答时间:2018-5-30 13:04:53
本帖最后由 wenyangzeng 于 2018-5-30 15:42 编辑

LED驱动的高低电平:

GPIOC->ODR |=0X41;
GPIOC->ODR &=~0X41;

评分

参与人数 1蝴蝶豆 +3 收起 理由
zero99 + 3

查看全部评分

GeekDog 回答时间:2018-5-30 14:10:48
Tcreat 发表于 2018-5-30 13:03
PCout的宏定义也要发出来看看


//IO口操作,只对单一的IO口!
//确保n的值小于16!
#define PAout(n)   BIT_ADDR(GPIOA_ODR_Addr,n)  //输出
#define PAin(n)    BIT_ADDR(GPIOA_IDR_Addr,n)  //输入

#define PBout(n)   BIT_ADDR(GPIOB_ODR_Addr,n)  //输出
#define PBin(n)    BIT_ADDR(GPIOB_IDR_Addr,n)  //输入

#define PCout(n)   BIT_ADDR(GPIOC_ODR_Addr,n)  //输出
#define PCin(n)    BIT_ADDR(GPIOC_IDR_Addr,n)  //输入

#define PDout(n)   BIT_ADDR(GPIOD_ODR_Addr,n)  //输出
#define PDin(n)    BIT_ADDR(GPIOD_IDR_Addr,n)  //输入

#define PEout(n)   BIT_ADDR(GPIOE_ODR_Addr,n)  //输出
#define PEin(n)    BIT_ADDR(GPIOE_IDR_Addr,n)  //输入

#define PFout(n)   BIT_ADDR(GPIOF_ODR_Addr,n)  //输出
#define PFin(n)    BIT_ADDR(GPIOF_IDR_Addr,n)  //输入

#define PGout(n)   BIT_ADDR(GPIOG_ODR_Addr,n)  //输出
#define PGin(n)    BIT_ADDR(GPIOG_IDR_Addr,n)  //输入

#define PHout(n)   BIT_ADDR(GPIOH_ODR_Addr,n)  //输出
#define PHin(n)    BIT_ADDR(GPIOH_IDR_Addr,n)  //输入

#define PIout(n)   BIT_ADDR(GPIOI_ODR_Addr,n)  //输出
#define PIin(n)    BIT_ADDR(GPIOI_IDR_Addr,n)  //输入
GeekDog 回答时间:2018-5-30 14:11:39
goodbaiy 发表于 2018-5-30 11:59
兄弟,main函数里面没有配置系统时钟,看看配置一下结果如何;
你现在学习的话,最好学习HAL库,使用用STM3 ...

#include "sys.h"
#include "delay.h"
#include "usart.h"

void LED_Init(void)
{
    GPIO_InitTypeDef  GPIO_InitStructure;
      
    RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOC, ENABLE);       //时钟使能   
   
    //GPIO C0,C6初始化
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0 | GPIO_Pin_6 ;     //LED0 -- PC0   LED1 -- PC6
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;               //普通输出模式
    GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;              //推挽输出
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_100MHz;          //100MHz
    GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;                //上拉
    GPIO_Init(GPIOC, &GPIO_InitStructure);                      //初始化GPIO
      
    GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_6);               //GPIO C0,C6设置为高
       
}


int main(void)
{
    delay_init(168);                                           //初始化延时函数
    LED_Init();                                                //初始化LED端口
   
    /**下面是通过直接操作库函数的方式实现IO控制**/
    while(1)
    {
        GPIO_ResetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_6);       //GPIO C0,C6设置为低
        delay_ms(500); //延时500ms
               
        GPIO_SetBits(GPIOC, GPIO_Pin_0 | GPIO_Pin_6);         //GPIO C0,C6设置为高
        delay_ms(500); //延时500ms
    }
}

GeekDog 回答时间:2018-5-30 14:12:30
goodbaiy 发表于 2018-5-30 11:59
兄弟,main函数里面没有配置系统时钟,看看配置一下结果如何;
你现在学习的话,最好学习HAL库,使用用STM3 ...

改成这样呢
电子星辰 回答时间:2018-5-30 16:44:44
你有没有试试下个同芯片,确定没有问题的程序进去。先确定是软件还是硬件的问题。
lilei900512 回答时间:2018-5-30 19:18:29
你先看看你软仿时候的寄存器是否配置正确,再看看程序是否真的下载到片子上。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

风之山谷 回答时间:2018-5-30 19:39:32
是不是硬件设计有问题?是不是没有下载到板子上,仿真器没有选对?软件方面最好把整个工程文件打包上来看看。

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

feixiang20 回答时间:2018-5-30 23:18:21
还是建议多找点跑马灯实验的资料来看,最好是有视频的。
【STM32跑马灯例程总结 】
【基于STM32的跑马灯实验的详细解析】
【跑马灯实验,很全面的跑马灯实验文章】
【连载】【ALIENTEK 战舰STM32开发板】STM32开发指南--第六章 跑马灯实验
https://www.stmcu.org.cn/module/ ... amp;fromuid=2091055

评分

参与人数 1蝴蝶豆 +2 收起 理由
zero99 + 2

查看全部评分

12下一页

所属标签

相似问题

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32Cube扩展软件包
意法半导体边缘AI套件
ST - 理想汽车豪华SUV案例
ST意法半导体智能家居案例
STM32 ARM Cortex 32位微控制器
关注我们
st-img 微信公众号
st-img 手机版