打印

这个错误提示什么意思

[复制链接]
769|4
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
hanwe|  楼主 | 2015-9-13 19:42 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
用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'
什么意思啊?
沙发
yufe| | 2015-9-13 19:42 | 只看该作者
导致这个Error 的原因是"OK"被定义在了ROM中了,这是你用的compiler决定的。strstr 的两个参数必须从ram中取

使用特权

评论回复
板凳
hanwe|  楼主 | 2015-9-13 19:42 | 只看该作者
怎么解决

使用特权

评论回复
地板
yufe| | 2015-9-13 19:42 | 只看该作者
解决办法是定义"OK" 到RAM中:
char ok[]="OK";
...
r=strstr(strPtr,ok);

使用特权

评论回复
5
hanwe|  楼主 | 2015-9-13 19:43 | 只看该作者
问题解决,多谢高手

使用特权

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

本版积分规则

979

主题

8749

帖子

4

粉丝