大家好!
最近新作的一个项目,用到了STM32和C5535,工作流程是C5535接收音频codec的i2s数据,对数据进行处理后通过uart发送给stm32.
对于C5535,I2S的数据采用DMA中断来处理,另外使能了uart的接收中断来接收stm32的指令。
为了节约pcb空间,C5535没有外挂spi flash,而是采用stm32的 uart来加载程序。
现在的问题是,C5535在仿真时(自己的5535的pcb加XDS200仿真器)完全能正常工作,但是通过stm32来加载程序后,C5535似乎不能正常工作了(在仿真时在串口可以测到5535发送的数据,但是通过stm32加载后,5535的串口发送没有数据,始终是高电平)。为了进一步验证这个问题,在程序一开始点亮了两颗led,分别在串口发送前后熄灭这两个led,现象是仿真时这两个led确实被点亮后又依次熄灭了,但是通过stm32的uart加载程序后,两个led常亮。
这似乎是说明,程序确实被加载到了5535中(两个led可以被点亮),但是程序却没有被正确执行(led没有被熄灭),但是实在是想不通这是为什么?
个人认为,程序仿真时正常,说明硬件和程序应该都没问题(对吗?),但是通过UART加载后不能正常执行,既然led被点亮起码说明程序被正常加载进去了,但是不能正常执行,是不是UART加载时还需要有特别的设置??