在这个程序中,我收到错误,即复制符号" _buf_position"在C .. \ async.obj 我已将buf_position声明为全局变量我不知道此代码有什么问题,有人可以看看。
// async.h文件
extern uint8_t buffer[10];
extern uint32_t buf_position = 0;
extern uint8_t local_buff[10];
extern uint32_t retVal;
// async.c文件
#include "async.h"
void Transmit_Data(void)
{
.............
...........
}
void Excep_SCI0_RXI0(void)//This is a recive interrupt,when some data is available on serialport
{
buffer[buf_position++]= SCI0.RDR;
}
// main.c
#include "async.h"
void main(void)
{
while(buffer[buf_position-1]=='\r')
{
memcpy(local_buff,buffer,buf_position-1);
Display_LCD(LCD_LINE1, local_buff);
Transmit_Data();
buf_position = 0;
//memset(buffer,0,sizeof(buffer));
}
}
答案 0 :(得分:5)
您在包含buf_position
的每个文件中定义async.h
。删除async.h
中的初始化:
extern uint32_t buf_position;
现在你只是宣布它。
在async.c
中,添加初始化:
#include "async.h"
uint32_t buf_position = 0;
uint8_t buffer[10];
uint8_t local_buff[10];
uint32_t retVal;