急! keil编译出错,请高手指点!

[复制链接]
5669|10
 楼主| zhl100 发表于 2010-7-5 20:19 | 显示全部楼层 |阅读模式
本帖最后由 zhl100 于 2010-7-5 21:20 编辑

Target not created和..\main.c(152): error:  #20: identifier "GPIOC" is undefined
不是软件的问题,别的程序通过硬件测试可以成功运行。


具体问题是:用A端口做输出,则不报错
用C端口做输出,则报错,

用的是库函数,找不到原因,请高手指点!
在线等。。。

void GPIO_Configuration(void)
{
  GPIO_InitTypeDef GPIO_InitStructure;
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
  GPIO_Init(GPIOA, &GPIO_InitStructure);
  
}上面的GPIO_Init(GPIOA, &GPIO_InitStructure);这句,不能改成GPIO_Init(GPIOC, &GPIO_InitStructure);为什么呢?
zchong 发表于 2010-7-5 20:46 | 显示全部楼层
莫非真的没有定义
别用.lib
直接用源文件编译
hgjinwei 发表于 2010-7-5 21:04 | 显示全部楼层
都说了“GPIOC”标识没有定义啦,你还想乍样?
估计main.c 没有 #include "stxxxx.h"
 楼主| zhl100 发表于 2010-7-5 21:16 | 显示全部楼层
那A端口设置可以运行,C为什么不行呢?我想设置C为输出啊


#include "stm32f10x_lib.h"这个我加了的。。
香水城 发表于 2010-7-6 10:03 | 显示全部楼层
什么芯片?哪个版本的库?  你可以参考库中的例子。
 楼主| zhl100 发表于 2010-7-6 10:21 | 显示全部楼层
5# 香水城


芯片是stm32f103  那个附件是库函数,我就不明白,为什么A,D,E端口都能用,唯独C端口不能用。。 GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
  GPIO_Init(GPIOA, &GPIO_InitStructure);   把端口改为C,就会报错。"..\main.c(203): error:  #20: identifier "GPIOC" is undefined"     并且说“Target not created”,不知道为什么。。。
library.rar (129.88 KB, 下载次数: 34)
hgjinwei 发表于 2010-7-6 18:31 | 显示全部楼层
/************************************* GPIO ***********************************/
#define _GPIO
#define _GPIOA
//#define _GPIOB
//#define _GPIOC
#define _GPIOD
#define _GPIOE
#define _AFIO

你都没有定义GPIOB 和 GPIOC,不出错才怪呢。

评分

参与人数 1威望 +1 收起 理由
zhl100 + 1 谢谢

查看全部评分

hgjinwei 发表于 2010-7-6 18:31 | 显示全部楼层
在“stm32f10x_conf.h” line 62-69
 楼主| zhl100 发表于 2010-7-6 19:09 | 显示全部楼层
8# hgjinwei
谢谢,我知道了

麻烦你帮我看看下面这个工程,为什么,下载进去板子没反应呢

工程在RVMDK文件夹里,main函数,我设置的对呀,下载进去就是不行。。。

UART_lcd(串口回显).rar

488.75 KB, 下载次数: 17

hgjinwei 发表于 2010-7-6 23:08 | 显示全部楼层
/*******************************************************************************
* Function Name  : USART1_IRQHandler
* Description    : This function handles USART1 global interrupt request.
* Input          : None
* Output         : None
* Return         : None
*******************************************************************************/
void USART1_IRQHandler(void)
{
         u8 c;
         char  *s;





        /*send what have received */

        //USART_SendData(USART1, USART_ReceiveData(USART1));
          c=USART_ReceiveData(USART1);



          USART_SendData(USART1, c);



          *s=c;
          
       lcd_init  ();
       lcd_clear ();
           lcd_print (s);


           /* Clear the USART1 Receive interrupt */
    USART_ClearITPendingBit(USART1, USART_IT_RXNE);
}


1、s 野指针,很可能导致fault
2、lcd_init  ();  lcd_clear ();  lcd_print (s); 这三个函数不是一般的长,好嵌了一大堆delay(xxxx),不知你是怎么保证他们能在大约1ms内跑完的。

你不会刚开始学编程吧?
 楼主| zhl100 发表于 2010-7-11 09:48 | 显示全部楼层
10# hgjinwei

不是这个问题,问题我已经解决了,还是谢谢
您需要登录后才可以回帖 登录 | 注册

本版积分规则

102

主题

787

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部