野火电子论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 4650|回复: 4

STM32最简单的点灯问题

[复制链接]
发表于 2023-1-13 21:35:13 | 显示全部楼层 |阅读模式
本帖最后由 YYRAN 于 2023-1-13 21:38 编辑

这一段代码是跟着火哥学习的,一开始是可以运作的,也是可以成功点上灯的,但是过段时间之后就没办法点起来了,换了一块板子的效果也是一样。后续烧写官方历程也没办法解决。求大神指教。

野火论坛202301132134017837..png
回复

使用道具 举报

发表于 2023-1-15 22:22:23 | 显示全部楼层
什么板子 是不是把LED灯的跳帽拔掉了
回复 支持 反对

使用道具 举报

 楼主| 发表于 2023-1-18 12:58:17 | 显示全部楼层
WishWish 发表于 2023-1-15 22:22
什么板子 是不是把LED灯的跳帽拔掉了

是野火的指南者
回复 支持 反对

使用道具 举报

发表于 2023-1-19 09:03:56 | 显示全部楼层
你可以用调试看下地址下值的变化,看看是哪一步的结果不对
野火论坛202301190903176475..png
回复 支持 反对

使用道具 举报

发表于 2023-1-19 09:48:32 | 显示全部楼层
// GPIOx在APB2线上,有个RCC时钟控制,平时是关闭着,需要用时打开,控制使能IOPB
    *(unsigned int *)0x40021018 |= ((1)<<3);

    // CRL寄存器中配置为通用推挽输出模式 50MHZ 复位后是0100
    *(unsigned int *)0x40010C00 &= ~(0xf << 4*0); // 先把CNF0和MODE0变成0000
    *(unsigned int *)0x40010C00 |= (1 << 4*0); // CNF0和MODE0赋值为0011


    // 控制ODR寄存器点亮LED用端口输出数据寄存器(GPIOx_ODR) 地址偏移0ch 默认就是低电平,默认就是亮的
    *(unsigned int *)0x40010C0C |= (1<<0); // GPIO_0为1,其余不变 关
    *(unsigned int *)0x40010C0C &= ~(1<<0); // GPIO_0为0,其余不变 开

模式控制少了一步
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-20 19:35 , Processed in 0.035448 second(s), 26 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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