打印
[技术文档]

0基础HK32F030M流水线跑马灯案件测试成功

[复制链接]
1088|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
    官网里HK32F030M例程GPIO例程有小点问题,测试时先把配置PD5和PB5的IO配置删掉或注释掉,不然直接下载测试下次就好顺利再次烧写.下面是代码
/**
  ******************************************************************************
  * @file           : main.c
  * @brief          : Main program body
  ******************************************************************************
  * @attention
  * @func  Çë¸ù¾ÝÊý¾ÝÊֲᣬÀ´Ñ¡Ôñ×Ô¼ºÐèÒª½»»»µÄÒý½Å
  */
/* Includes ------------------------------------------------------------------*/
#include "main.h"
#include "hk32f030m.h"
#include "hk32f030m_gpio.h"
static void GpioInit(void);
static void GpioToggle(void);
static void softWareDelay(void);
static void IOMUXGpioInit(void);
int main(void)
  /* Infinite loop */
{
GpioInit();
IOMUXGpioInit();
  while (1)
  {
  GpioToggle();
  
  }
}
static void GpioInit(void)
{
GPIO_InitTypeDef gpio;

RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
gpio.GPIO_Pin = GPIO_Pin_2;
gpio.GPIO_Mode = GPIO_Mode_OUT;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
gpio.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_Init(GPIOD, &gpio);


  RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOC, ENABLE);
gpio.GPIO_Pin = GPIO_Pin_7| GPIO_Pin_6 | GPIO_Pin_3;
gpio.GPIO_Mode = GPIO_Mode_OUT;
gpio.GPIO_OType = GPIO_OType_PP;
gpio.GPIO_PuPd = GPIO_PuPd_NOPULL;
gpio.GPIO_Speed = GPIO_Speed_Level_3;
GPIO_Init(GPIOC, &gpio);
}
// TSSOP20 PIN
static void IOMUXGpioInit(void)
{
GPIO_InitTypeDef m_gpio;
// ʹÄÜIOMUXʱÖÓ
RCC_APB1PeriphClockCmd(RCC_APB1Periph_IOMUX,ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOB, ENABLE);
RCC_AHBPeriphClockCmd(RCC_AHBPeriph_GPIOD, ENABLE);
}
static void GpioToggle(void)
{
GPIOD->ODR ^= GPIO_Pin_2;
softWareDelay();
GPIOC->ODR ^= GPIO_Pin_7;
  softWareDelay();
  GPIOC->ODR ^= GPIO_Pin_6;
softWareDelay();
  GPIOC->ODR ^= GPIO_Pin_3;
softWareDelay();
}
static void softWareDelay(void)
{
uint16_t i;
uint16_t j;

for(i=0;i<400;i++)
{
  for(j=0;j<400;j++)
  {
   __NOP();
  }
}
}


刚从C51转过来,一直没搞清IO和封装的引脚对应。百度后才搞明白
stm32的gpio口有五组gpioa,gpiob,gpioc,gpiod,gpioe,分别对应了板上管脚图里的PA,PB,PC,PD,PE
来自网址http://blog.sina.com.cn/s/blog_5489e16b0101hd4v.html这样就方便找到对应的引脚,配置IO了

大神勿喷,菜鸟级别。

使用特权

评论回复

相关帖子

沙发
这厢有你了| | 2020-8-19 11:45 | 只看该作者
例程里 GPIO文件夹下,2-4 带有IOMUX的例程都是要把某些pin脚复用成其它IO的例程。所以,你用起来,肯定会有这样的情况,你可以用1_GPIO_Toggle 这个例程来测。

使用特权

评论回复
板凳
这厢有你了| | 2020-8-19 11:46 | 只看该作者
不过 出现这这种情况,在main函数开始的位置,加一个100ms以上的延时,就可以正常烧录下载了。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

7

主题

50

帖子

0

粉丝