错误提示

[复制链接]
409|4
手机看帖
扫描二维码
随时随地手机跟帖
juventus9554|  楼主 | 2018-9-5 09: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'
什么意思啊?
morrisk| | 2018-9-5 09:45 | 显示全部楼层
导致这个Error 的原因是"OK"被定义在了ROM中了,这是你用的compiler决定的。strstr 的两个参数必须从ram中取

使用特权

评论回复
juventus9554|  楼主 | 2018-9-5 09:49 | 显示全部楼层
怎么解决

使用特权

评论回复
xxmmi| | 2018-9-5 09:53 | 显示全部楼层

解决办法是定义"OK" 到RAM中:
char ok[]="OK";
...
r=strstr(strPtr,ok);

使用特权

评论回复
juventus9554|  楼主 | 2018-9-5 09:56 | 显示全部楼层
哦,那我就知道怎么回事了,多谢大家,结贴了哈

使用特权

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

本版积分规则

900

主题

12190

帖子

3

粉丝