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

查看: 3971|回复: 8

【求助】用STM32F10x点亮led小灯,PC脚定义的问题

[复制链接]

18

主题

60

回帖

0

蝴蝶豆

新手上路

最后登录
2018-1-8
发表于 2010-10-19 10:45:57 | 显示全部楼层 |阅读模式
用STM32F10x点亮led小灯,PC脚定义的问题
我的目的是用STM32F10x点亮led小灯,用的是IAR for ARM的编译软件,定义IO口的时候PA,PB是正常的,
  /* Enable GPIOC clock */
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);
  /* Configure PA.06  as Output push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
可是定义PC脚的时候,出现“identifier GPIOC is undenfined”,
 
 请问高手们,我这是什么东西的设置不对啊?!
我的总体main函数如下:
/******************** (C) COPYRIGHT 2007 STMicroelectronics ********************
* File Name          : main.c
* Author             : MCD Application Team
* Version            : V1.0
* Date               : 10/08/2007
* Description        : Main program body
********************************************************************************
* THE PRESENT SOFTWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS
* WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME.
* AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY DIRECT,
* INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE
* CONTENT OF SUCH SOFTWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING
* INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.
*******************************************************************************/
/* Includes ------------------------------------------------------------------*/
#include "stm32f10x_lib.h"
/* Private typedef -----------------------------------------------------------*/
/* Private define ------------------------------------------------------------*/
/* Private macro -------------------------------------------------------------*/
/* Private variables ---------------------------------------------------------*/
GPIO_InitTypeDef GPIO_InitStructure;
ErrorStatus HSEStartUpStatus;
/* Private function prototypes -----------------------------------------------*/
void RCC_Configuration(void);
void NVIC_Configuration(void);
void Delay(vu32 nCount);
/* Private functions ---------------------------------------------------------*/
/*******************************************************************************
* Function Name  : main
* Description    : Main program.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
int main(void)
{
#ifdef DEBUG
  debug();
#endif
  /* Configure the system clocks */
  RCC_Configuration();
   
  /* NVIC Configuration */
  NVIC_Configuration();
  /* Enable GPIOC clock */
   RCC_APB1PeriphClockCmd(RCC_APB1Periph_PWR, ENABLE);
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
   RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);
  /* Configure PC.06, PC.07, PC.08 and PC.09 as Output push-pull */
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6 ;
 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOC, &GPIO_InitStructure);
  while (1)
  {
    /* Turn on led connected to PC.06 pin */
    GPIO_SetBits(GPIOA, GPIO_Pin_6);
    /* Insert delay */
    Delay(0xAFFFF);
    /* Turn on led connected to PC.07 and PC.08 pins */
    GPIO_SetBits(GPIOA, GPIO_Pin_7 | GPIO_Pin_8);
    /* Turn off led connected to PC.06 pin */
    GPIO_ResetBits(GPIOA, GPIO_Pin_6);
    /* Insert delay */
    Delay(0xAFFFF);
    /* Turn on led connected to PC.09 pin */
    GPIO_SetBits(GPIOA, GPIO_Pin_9);
    /* Turn off led connected to PC.07 and PC.08 pins */
    GPIO_ResetBits(GPIOA, GPIO_Pin_8 | GPIO_Pin_7);
    /* Insert delay */
    Delay(0xAFFFF);
    /* Turn off led connected to PC.09 pin */
    GPIO_ResetBits(GPIOA, GPIO_Pin_9);
  }
}
/*******************************************************************************
* Function Name  : RCC_Configuration
* Description    : Configures the different system clocks.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void RCC_Configuration(void)
{
  /* RCC system reset(for debug purpose) */
  RCC_DeInit();
  /* Enable HSE */
  RCC_HSEConfig(RCC_HSE_ON);
  /* Wait till HSE is ready */
  HSEStartUpStatus = RCC_WaitForHSEStartUp();
  if(HSEStartUpStatus == SUCCESS)
  {
    /* Enable Prefetch Buffer */
    FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
    /* Flash 2 wait state */
    FLASH_SetLatency(FLASH_Latency_2);
  
    /* HCLK = SYSCLK */
    RCC_HCLKConfig(RCC_SYSCLK_Div1);
 
    /* PCLK2 = HCLK */
    RCC_PCLK2Config(RCC_HCLK_Div1);
    /* PCLK1 = HCLK/2 */
    RCC_PCLK1Config(RCC_HCLK_Div2);
    /* PLLCLK = 8MHz * 9 = 72 MHz */
    RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
    /* Enable PLL */
    RCC_PLLCmd(ENABLE);
    /* Wait till PLL is ready */
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET)
    {
    }
    /* Select PLL as system clock source */
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
    /* Wait till PLL is used as system clock source */
    while(RCC_GetSYSCLKSource() != 0x08)
    {
    }
  }
}
/*******************************************************************************
* Function Name  : NVIC_Configuration
* Description    : Configures Vector Table base location.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void NVIC_Configuration(void)
{
#ifdef  VECT_TAB_RAM 
  /* Set the Vector Table base location at 0x20000000 */
  NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);
#else  /* VECT_TAB_FLASH  */
  /* Set the Vector Table base location at 0x08000000 */
  NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);  
#endif
}
/*******************************************************************************
* Function Name  : Delay
* Description    : Inserts a delay time.
* Input          : nCount: specifies the delay time length.
* Output         : None
* Return         : None
*******************************************************************************/
void Delay(vu32 nCount)
{
  for(; nCount != 0; nCount--);
}
#ifdef  DEBUG
/*******************************************************************************
* Function Name  : assert_failed
* Description    : Reports the name of the source file and the source line number
*                  where the assert_param error has occurred.
* Input          : - file: pointer to the source file name
*                  - line: assert_param error line source number
* Output         : None
* Return         : None
*******************************************************************************/
void assert_failed(u8* file, u32 line)
{
  /* User can add his own implementation to report the file name and line number,
     ex: printf("Wrong parameters value: file %s on line %d\r\n", file, line) */
  /* Infinite loop */
  while (1)
  {
  }
}
#endif
回复

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-10-19 14:24:04 | 显示全部楼层

RE:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

你用的什么芯片?是不是没有GPIOC?
可是定义PC脚的时候,出现“identifier GPIOC is undenfined”,说明没有定义GPIOC。
回复 支持 反对

使用道具 举报

18

主题

60

回帖

0

蝴蝶豆

新手上路

最后登录
2018-1-8
 楼主| 发表于 2010-10-19 14:30:38 | 显示全部楼层

回复:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

回复第 2 楼 安 于2010-10-19 06:24:04发表:
你用的什么芯片?是不是没有GPIOC?
可是定义PC脚的时候,出现“identifier GPIOC is undenfined”,说明没有定义GPIOC。 

我在IAR的的Device中定义的是STM32F10xxB,
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-10-19 14:35:20 | 显示全部楼层

RE:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

你可以看看你引用的这个头文件里面有没有GPIOC。
回复 支持 反对

使用道具 举报

18

主题

60

回帖

0

蝴蝶豆

新手上路

最后登录
2018-1-8
 楼主| 发表于 2010-10-19 14:53:22 | 显示全部楼层

回复:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

回复第 4 楼 安 于2010-10-19 06:35:20发表:
你可以看看你引用的这个头文件里面有没有GPIOC。 

我用的是现有的文件移植过来的,main函数里头文件里不用定义GPIO的东西,而且PA,PB的引脚也没用定义,我都可以用他们的,我想用PC脚做一下程序,却运行不了的,不知道为什么定义不了,
回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-10-19 15:30:08 | 显示全部楼层

RE:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

GPIOC在GPIO.H中定义的了,你看看有没有。这个说明没有这个定义,当然会提示你错误了。如果有定义了,就不会提示错误。
回复 支持 反对

使用道具 举报

18

主题

60

回帖

0

蝴蝶豆

新手上路

最后登录
2018-1-8
 楼主| 发表于 2010-10-19 16:41:12 | 显示全部楼层

回复:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

回复第 6 楼 安 于2010-10-19 07:30:08发表:
GPIOC在GPIO.H中定义的了,你看看有没有。这个说明没有这个定义,当然会提示你错误了。如果有定义了,就不会提示错误。 
 

我在GPIO.h里找到关于GPIOC的定义,但是不知道是不是。我把我的程序发上来了,你有时间帮我看看吧?!麻烦了。。。

点亮小灯.rar

下载

383.48 KB, 下载次数: 2

回复 支持 反对

使用道具 举报

134

主题

4489

回帖

239

蝴蝶豆

版主

最后登录
2020-12-9
发表于 2010-10-19 18:44:48 | 显示全部楼层

RE:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

我没有IAR,你把GPIO.C也添加进去。
回复 支持 反对

使用道具 举报

18

主题

60

回帖

0

蝴蝶豆

新手上路

最后登录
2018-1-8
 楼主| 发表于 2010-10-20 15:58:11 | 显示全部楼层

回复:【求助】用STM32F10x点亮led小灯,PC脚定义的问题

回复第 8 楼 安 于2010-10-19 10:44:48发表:
我没有IAR,你把GPIO.C也添加进去。 

我添加进去了,还是不好用的,我现在换了个模板解决以前的问题了,可是我现在有个的新问题:

我用IAR FOR ARM的编译软件编辑流水灯的,为了检查寄存器,我在while循环里的GPIO的每一行我都加了断点设置,发现程序不是按顺序进行的,这是为什么呢?!
回复 支持 反对

使用道具 举报

关于
我们是谁
投资者关系
意法半导体可持续发展举措
创新与技术
意法半导体官网
联系我们
联系ST分支机构
寻找销售人员和分销渠道
社区
媒体中心
活动与培训
隐私策略
隐私策略
Cookies管理
行使您的权利
官方最新发布
STM32N6 AI生态系统
STM32MCU,MPU高性能GUI
ST ACEPACK电源模块
意法半导体生物传感器
STM32Cube扩展软件包
关注我们
微信公众号二维码 微信公众号
手机版二维码 手机版