打印

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

[复制链接]
5158|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"这个我加了的。。

使用特权

评论回复
5
香水城| | 2010-7-6 10:03 | 只看该作者
什么芯片?哪个版本的库?  你可以参考库中的例子。

使用特权

评论回复
6
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)

使用特权

评论回复
7
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 谢谢
8
hgjinwei| | 2010-7-6 18:31 | 只看该作者
在“stm32f10x_conf.h” line 62-69

使用特权

评论回复
9
zhl100|  楼主 | 2010-7-6 19:09 | 只看该作者
8# hgjinwei
谢谢,我知道了

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

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

UART_lcd(串口回显).rar

488.75 KB

使用特权

评论回复
10
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内跑完的。

你不会刚开始学编程吧?

使用特权

评论回复
11
zhl100|  楼主 | 2010-7-11 09:48 | 只看该作者
10# hgjinwei

不是这个问题,问题我已经解决了,还是谢谢

使用特权

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

本版积分规则

102

主题

787

帖子

2

粉丝