OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 9448|回复: 13

例说STM32 串口实验编译出错

[复制链接]

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-1-12
在线时间
2 小时
发表于 2012-1-18 11:39:27 | 显示全部楼层 |阅读模式
我在编译串口实验范例代码时出错了,没有找出原因,请大家帮我看一下:
test.axf: Error: L6218E: Undefined symbol USART_RX_BUF (referred from test.o).
test.axf: Error: L6218E: Undefined symbol USART_RX_STA (referred from test.o).

#include <stm32f10x_lib.h>
#include "sys.h"
#include "usart.h"  
#include "delay.h" 
#include "led.h"
#include "key.h"   
//Mini STM32开发板范例代码3
//串口实验
//正点原子@ALIENTEK
//技术论坛:www.openedv.com 
int main(void)
{   
 u8 t;
 u8 len; 
 u16 times=0; 
 Stm32_Clock_Init(9); //系统时钟设置
 delay_init(72);      //延时初始化
 uart_init(72,9600);  //串口初始化为9600
 LED_Init();      //初始化与LED连接的硬件接口   
 while(1)
 {
  if(USART_RX_STA&0x80)
  {       
   len=USART_RX_STA&0x3f;//得到此次接收到的数据长度
   printf("\n您发送的消息为:\n");
   for(t=0;t<len;t++)
   {
    USART1->DR=USART_RX_BUF[t];
    while((USART1->SR&0X40)==0);//等待发送结束
   }
   printf("\n\n");//插入换行
   USART_RX_STA=0;
  }else
  {
   times++;
   if(times%5000==0)
   {
    printf("\nMiniSTM32开发板 串口实验\n");
    printf("正点原子@ALIENTEK\n\n\n");
   }
   if(times%200==0)printf("请输入数据,以回车键结束\n"); 
   if(times%30==0)LED0=!LED0;//闪烁LED,提示系统正在运行.
   delay_ms(10);  
  }
 } 
}
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-1-18 11:44:37 | 显示全部楼层
回复【楼主位】shangwei4:
---------------------------------
提示信息已经告诉你问题的原因了.
就是这两个东西没有定义.
为什么呢?你去看usart.h文件,里面有个宏定义,用来设置是否使能串口接收的.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-1-12
在线时间
2 小时
 楼主| 发表于 2012-1-18 11:56:13 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
原子哥,usart.h里面有定义啊
#ifndef __USART_H
#define __USART_H
#include <stm32f10x_lib.h>
#include "stdio.h"  
    
extern u8 USART_RX_BUF[64];     //接收缓冲,最大63个字节.末字节为换行符 
extern u8 USART_RX_STA;         //接收状态标记

//如果想串口中断接收,请不要注释以下宏定义
//#define EN_USART1_RX //使能串口1接收
void uart_init(u32 pclk2,u32 bound);

#endif    
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-1-18 11:57:45 | 显示全部楼层
回复【3楼】shangwei4:
---------------------------------
...
面壁思过10分钟.

双斜杠后面的内容,编译器会去编译么?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

4

主题

15

帖子

0

精华

初级会员

Rank: 2

积分
74
金钱
74
注册时间
2012-1-12
在线时间
2 小时
 楼主| 发表于 2012-1-18 12:01:13 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
好吧,今天少吃一个馒头。。。。。。
明天要回家了,祝原子哥新年快乐!大吉大利!
回复 支持 反对

使用道具 举报

1

主题

3

帖子

0

精华

新手入门

积分
27
金钱
27
注册时间
2012-1-10
在线时间
0 小时
发表于 2012-2-10 14:35:10 | 显示全部楼层
这是什么原因,我也遇到了,就是找不到什么解决的办法。求指点
回复 支持 反对

使用道具 举报

13

主题

68

帖子

0

精华

初级会员

Rank: 2

积分
152
金钱
152
注册时间
2012-3-21
在线时间
5 小时
发表于 2012-3-29 12:35:29 | 显示全部楼层
回复【6楼】初来乍道:
---------------------------------
把二楼   //#define EN_USART1_RX //使能串口1接收  中的//去掉,然后重新编译~~~~
回复 支持 反对

使用道具 举报

6

主题

27

帖子

0

精华

初级会员

Rank: 2

积分
73
金钱
73
注册时间
2012-7-26
在线时间
1 小时
发表于 2012-8-4 14:09:47 | 显示全部楼层
回复【2楼】正点原子:
---------------------------------
我也犯同样的错误了,而且看了好几遍都没发现。
有想法没行动等于白日梦。
回复 支持 反对

使用道具 举报

1

主题

25

帖子

0

精华

新手上路

积分
49
金钱
49
注册时间
2012-9-21
在线时间
0 小时
发表于 2012-9-21 16:04:23 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
您好 请问一下我是要在哪里设置中断函数USART1_IRQHandler,让系统在发生中断时知道去调用这个函数?我可以吧函数名改成USART2_IRQHandler来作为USART2的中断处理函数吗?
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2012-9-21 17:37:45 | 显示全部楼层
在.s文件都有定义的。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

2

主题

13

帖子

0

精华

新手上路

积分
41
金钱
41
注册时间
2012-12-29
在线时间
0 小时
发表于 2013-9-11 17:00:51 | 显示全部楼层
回复【10楼】正点原子:
---------------------------------
您好,.s文件是干嘛用的?我往我的程序里面移植了一个文件系统FATFS(我的源程序是没问题的),现在的错误跟楼主的差不多,都是类似test.axf: Error: L6218E: Undefined symbol XXX (referred from xxx.o).这是什么原因呢?我用的是原子的miniSTM32开发板。
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-9-11 22:29:43 | 显示全部楼层
回复【11楼】云淡风轻2011:
---------------------------------
论坛搜索:.s
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

0

主题

2

帖子

0

精华

新手入门

积分
22
金钱
22
注册时间
2013-12-24
在线时间
0 小时
发表于 2013-12-25 12:16:29 | 显示全部楼层
我把usart.h的#define EN_USART1_RX //使能串口1接收前面的//去掉也不行
回复 支持 反对

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2013-12-25 21:15:00 | 显示全部楼层
回复【13楼】zhuzhijun:
---------------------------------
什么现象?
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-6-17 01:17

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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