打印

新手求好心高人指点

[复制链接]
1666|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
over_chain|  楼主 | 2011-3-10 21:08 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用PSOC向MC55发送指令的程序:
#include <m8c.h>
// part specific constants and macros
#include "PSoCAPI.h"
// PSoC API definitions for all User Modules
#include <string.h>
void main(void)
{int i;
char *r;
char k;
char
*strPtr;// Parameter pointer
unsigned char AT_Buffer[9];
unsigned char Command_AT[3] ={0x41,0x54,0x0D};
UART_2_CmdReset(); // Initialize receiver/cmd
UART_2_EnableInt(); // Enable RX interrupts
Counter8_1_WritePeriod(155); // Set up baud rate generator
Counter8_1_WriteCompareValue(77);
Counter8_1_Start(); // Turn on baud rate generator
UART_2_Start(UART_2_PARITY_NONE); // Enable UART
M8C_EnableGInt ; // Turn on interrupts
LED_1_Start();
LED_2_Start();
LED_1_Off();
LED_2_Off();
UART_2_CPutString("AT");
UART_2_PutCRLF();
strPtr = UART_2_szGetParam();
r=strstr(strPtr,"OK");
if(r)
{
LED_1_On();
LED_2_Off();
while(1){
UART_2_CPutString("ATD15120077266;");
UART_2_PutCRLF();
}
}
}
错误提示:!E C:\Users\wsy\DOCUME~1\PSOCDE~1.0PR\uart_1\uart_1\main.c(62): type error in argument 2 to `strstr'; found `pointer to __flash char' expected `pointer to char'
什么意思啊?
(谢!!)
沙发
jxin| | 2011-3-11 11:01 | 只看该作者
导致这个Error 的原因是"OK"被定义在了ROM中了,这是你用的compiler决定的。strstr 的两个参数必须从ram中取,所以解决办法是定义"OK" 到RAM中:
char ok[]="OK";
...
r=strstr(strPtr,ok);

使用特权

评论回复
板凳
over_chain|  楼主 | 2011-3-13 20:58 | 只看该作者
问题解决,多谢高手

使用特权

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

本版积分规则

2

主题

24

帖子

1

粉丝