UART通信不稳定
我用的NEC9234芯片,通过半双工485转换器(两片MAX3082构成)与电脑主台软件进行通信,问题如下:1。接收异常。由于协议约定帧起始有1-4个OXFE唤醒字节,我在检测到此字符时进行接收数组指针后退操作,问题是,程序运行时,接收时好时坏,有时前三个正常字节会被滤掉,有时却一切正常。
2。发送异常。收到帧后,按照规约要求进行解码,然后组成发送报文开始发送,发送的数组中有一个或几个值与内存中的数值不符,随机出现。有时候还会出现发送的数值很短,只有正常长度的一半左右。
3。中断异常。在接收中断中,指定的数组指针会突然变化,指错地方,导致不能接收。
各位高手,希望你们能不吝赐教,非常感谢! 堆栈是不是溢出了? 请问sophie0403:
怎么判断是否是堆栈溢出? 在PM+中“tool”下拉“startup 78K0s”,该软件会显示所有子程序所用堆栈的大小,红色为最大,如果红色标出的大小超过了你所定义的堆栈大小,就有可能出现不可预知的错误,你所定义的堆栈大小在.sym文件中可以看到:起始地址_@STBEG 结束地址_@STEND;
如果没有安装78K0s,就在.prn文件中看,打开.prn文件搜索STACK_SIZE,自然能找出所有程序的堆栈大小,前提:compiler option--->output中选中create assembler sourse module 不好意思,写错了,78k0s是SK78k0S 非常感谢各位的指点,问题解决了,确实是堆栈溢出
方法:
tool”下拉compoliers options /startup routine/把using fixed area of standard I前面的钩走掉就可以了。
请问 “NEC-etouch”:我的PM+中“tool”下拉为什么没有“startup SK78K0s”选项?我装了CC78K0S。
页:
[1]