发 帖  
原厂入驻New
[问答] stm32点灯不亮找不到原因,请问问题在哪?
956 单片机 STM32
分享
要求的是LED另一端接电源,PB3/PB4/PB5输出低电平三个小灯亮。但是为啥子三个灯都不亮。。。

0
QQ图片20200324091046.png
QQ图片20200324091037.png
已退回5积分
2020-3-24 09:11:59   1 评论 分享淘帖 邀请回答

相关问题

1 条评论
11个回答
一个是查程序有没有问题,用寄存器方式要看写入的数值对不对,一个是LED与单片机引脚之间要有一个限流电阻,不然电流过大会烧单片机的引脚
2020-3-24 10:38:42 1 评论

举报

1 条评论
  • 2020-3-24 10:48

    数值检查了是对的,限流电阻也有,因为买的开发板,硬件不会有错。第五行是错了,但我改成APB3ENR了,这行应该也没毛病了,PB3/PB4还是不亮,只有PB5亮了,实在是看不出来是哪里的程序有问题。

对寄存器操作不熟,应该还是对寄存器的操作错误导致的,个人建议用库函数方式来写程序,比较方便。
#define SDA_IN()  {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)8<<28;}
#define SDA_OUT() {GPIOB->CRL&=0X0FFFFFFF;GPIOB->CRL|=(u32)3<<28;}
这个是一个对PB7的设置,
2020-3-24 11:38:12 评论

举报

函数void SystemInit(void)为啥为空的,系统时钟感觉就没有初始化,还是对比下示例程序看看哪里出问题了。
2020-3-24 21:58:18 评论

举报

2020-3-25 08:56:46 评论

举报

1确定硬件,直接用镊子将PB3 、PB4、PB5短到地,测试下LED是否会亮,排除硬件问题;
2软件代码,GPIO口试试改成推挽输出模式。
参考下这个帖子内容:
http://www.openedv.com/forum.php?mod=viewthread&tid=73465
2020-3-25 10:08:28 评论

举报

感觉最没有技术的可能是平平发展的,没用钻研心的,不好不坏的
2020-3-25 19:21:05 评论

举报

设置问题
把jtag禁用了,不然用不了
17.jpg
PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG

1.GPIO_Remap_SWJ_JTAGDisable: /*!< JTAG-DP Disabled and SW-DP Enabled */  即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试

2.GPIO_Remap_SWJ_Disable:  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */  5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试 

3.GPIO_Remap_SWJ_NoJTRST: /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位

如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重
映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。
2020-4-6 18:18:32 评论

举报

PA13,PA14分别作为SWD调试的SWIO和SWCLK;PB3,PB4,PA13,PA14,PA15共同用于JTAG

1.GPIO_Remap_SWJ_JTAGDisable: /*!< JTAG-DP Disabled and SW-DP Enabled */  即能用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试

2.GPIO_Remap_SWJ_Disable:  /*!< Full SWJ Disabled (JTAG-DP + SW-DP) */  5个引脚全为普通引脚,但不能再用JTAG&SWD仿真器调试,只能用st-link调试

3.GPIO_Remap_SWJ_NoJTRST: /*!< Full SWJ Enabled (JTAG-DP + SW-DP) but without JTRST */PB4可为普通IO口,JTAG&SWD正常使用,但JTAG没有复位

如果你用到所有的五个引脚当做普通IO口,那么上述步骤二中的重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE); 如果你用PB3,PB4,PA15做普通IO,PA13&14用于SWD调试,则重映射配置应写为GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable, ENABLE); 同理可配置只用PB4可为普通IO口的情况。


https://blog.csdn.net/qhw5279/article/details/72630637
2020-4-6 18:19:24 评论

举报

我感觉像是你寄存器没配置好,你就只配置了CRL和ODR的寄存器,应该不止的,你这样CRL里面是FF111FFF,而且你重复对它赋值干嘛,我手册里好像和这个不一样,你用的什么?
2020-4-8 09:27:04 评论

举报

我手册里好像和这个不一样,你用的什么?
2020-4-19 10:37:25 评论

举报

撰写答案

你正在撰写答案

如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。

高级模式
您需要登录后才可以回帖 登录 | 注册

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容图片侵权或者其他问题,请联系本站作侵删。 侵权投诉
我要提问
关闭

站长推荐 上一条 /7 下一条

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