用2812的SCI做modbus协议。仿真的时候运行正常,可是烧到Flash里面就不正常了。
我觉得可能的问题是波特率不一样,于是做了一段测试代码烧到里面,结果是波特率也正常啊。
SCI的时钟模块与在RAM里运行还是Flash运行有关系吗?没有看到这方面的说法啊。虽然其他在不同的模式下运行速度会有差役,但是应该不会影响波特率啊。
mangui zhang:
建议:
1、上电后不运行 建议复位后再看看是否正常运行?
2、复位后如果还是无法运行,并且确保代码烧写成功了 ,建议采用代码搬移的方法,将flash中的代码
搬移的RAM中跑
用2812的SCI做modbus协议。仿真的时候运行正常,可是烧到Flash里面就不正常了。
我觉得可能的问题是波特率不一样,于是做了一段测试代码烧到里面,结果是波特率也正常啊。
SCI的时钟模块与在RAM里运行还是Flash运行有关系吗?没有看到这方面的说法啊。虽然其他在不同的模式下运行速度会有差役,但是应该不会影响波特率啊。
user1988539:
回复 mangui zhang:
谢谢。原因找到了,程序在Flash运行时比较慢,导致一直没有进优先级较低的SCI处理函数。正常往RAM里搬移数据。