打印

急~本人初学者,求高手解答关于psoc UART程序的问题

[复制链接]
1794|2
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
loveajia|  楼主 | 2011-3-10 21:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#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();
k=UART_2_cReadChar();
r=strstr(strPtr,"OK");
if(r)
{
LED_1_On();
LED_2_Off();
while(1){
UART_2_CPutString("at");
UART_2_PutCRLF();
}
}
}
再PSOC designer编译时r=strstr(strPtr,"OK");这句会出现什么pointer to_flash char 错误,求高手解答。感觉很多C语言的语句比如给char k 赋初值好像都不行啊
沙发
jxin| | 2011-3-11 11:17 | 只看该作者
导致这个Error 的原因是"OK"被定义在了ROM中了,这是你用的compiler决定的。strstr 的两个参数必须从ram中取,所以解决办法是定义"OK" 到RAM中:
char ok[]="OK";
...
r=strstr(strPtr,ok);

使用特权

评论回复
板凳
loveajia|  楼主 | 2011-3-11 23:33 | 只看该作者
2# jxin
谢谢,改了就没错了

使用特权

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

本版积分规则

2

主题

37

帖子

1

粉丝