矿石收音机论坛

 找回密码
 加入会员

QQ登录

只需一步,快速开始

搜索
查看: 1239|回复: 6

请教,HK32F030MF4P6之点不亮LED

[复制链接]
     
发表于 2022-10-13 11:56:43 | 显示全部楼层 |阅读模式
航顺HK32F030MF4P6比较便宜,想试试,
搭了个最简单的电路用来点亮LED,结果
搞了一整天,愣是没点亮,高手帮忙看看,
谢谢了!

代码很简单,只有三句:
#include "hk32f030m.h"
void main(void)
{
  RCC->AHBENR|=RCC_AHBENR_GPIODEN;//打开PD时钟
  GPIOD->MODER|=GPIO_MODER_MODER4_0;//PD4输出模式
  GPIOD->ODR|=GPIO_ODR_4;//PD4拉高,点亮LED
  while(1){;}
}

我用的是IAR810,设置好DAP-Link,然后DOWNLOAD and DEBUG,
然后运行,LED就是不亮。

电路上很简单,用万用表查一查,没有问题,DAP-link可以刷另一
款M0单片机所以是正常的,HK32F030MF4P6的SWD能应答,能进入
调试,也说明HK32F030MF4P6芯片正常,不知哪里还有问题,高手
帮忙看看。
     
 楼主| 发表于 2022-10-13 12:43:41 | 显示全部楼层
事实证明,代码是可以刷进去的,比如我改了PD5的设置后,
结果不能进SWD调试了,换了芯片才可以进调试。
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-10-13 12:56:32 | 显示全部楼层
刚刚又查了一下外电路,在MCU接通电源的条件下,
可以用万用表欧姆档点亮LED,万用表的电流较小,
说明PD4端口还在高阻的输入状态,分析认为可能是
端口的时钟没有打开。
回复 支持 反对

使用道具 举报

     
发表于 2022-10-13 13:24:05 | 显示全部楼层
请教大佬们:  while(1) { ; }  怎么是空循环? 这样cpu不会狂飙吗?
如果是pc编程这样单核就满了。 莫非单片机有特殊处理这个嘛?
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-10-13 13:37:52 | 显示全部楼层
mingyuejingque 发表于 2022-10-13 13:24
请教大佬们:  while(1) { ; }  怎么是空循环? 这样cpu不会狂飙吗?
如果是pc编程这样单核就满了。 莫非 ...

这只是一个测试程序,只是想证明空循环之前的代码能正常执行就好了,
然后才会去写接下来的程序......
回复 支持 反对

使用道具 举报

     
发表于 2022-10-14 14:21:13 | 显示全部楼层
没有仔细看这个芯片跟STM的区别,但是我想套路都差不多。建议直接用厂家的demo例程改
回复 支持 反对

使用道具 举报

     
 楼主| 发表于 2022-10-14 23:52:23 | 显示全部楼层
经过不懈的努力,终于找到了原因,原来是MODER的复位值不为00,
先清除,再拉高为01就好了,

当然了,使用库开发的用户不会碰到这样的问题,因为库里面就是先
清除再赋值的。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 加入会员

本版积分规则

小黑屋|手机版|矿石收音机 ( 蒙ICP备05000029号-1 )

蒙公网安备 15040402000005号

GMT+8, 2024-5-6 22:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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