session 发表于 2024-12-22 17:34:10

keil5更改device后编译正常,运转异常

<p>谁知道如何解决Keil更改device后编译可以正常,但是发现程序跑到delay函数就死掉了,delay函数是单独的一个delay.H的文件下面的</p>
<p>求解</p>

CyberHamster 发表于 2024-12-22 19:13:32

发程序呀,什么都不发,谁知道具体什么情况,根据这个现象猜也没法猜

session 发表于 2024-12-22 23:17:43

CyberHamster 发表于 2024-12-22 19:13
发程序呀,什么都不发,谁知道具体什么情况,根据这个现象猜也没法猜
程序没啥,就是一个串口1中断,初始化EA=1,加了1000ms延迟,用仿真测试了下,只要打开EA总中断,然后24Mhz下delay软件延迟超过1000MS程序就跑飞而且串口也不能正常接受数据只能发送
单片机是STC8H8K64U,同样的程序用STC15W408AS就没有问题

session 发表于 2024-12-22 23:18:20

session 发表于 2024-12-22 23:17
程序没啥,就是一个串口1中断,初始化EA=1,加了1000ms延迟,用仿真测试了下,只要打开EA总中断,然后24M ...

单片机是STC8H8K64U

邮箱 发表于 2024-12-23 09:57:08

session 发表于 2024-12-22 23:17
程序没啥,就是一个串口1中断,初始化EA=1,加了1000ms延迟,用仿真测试了下,只要打开EA总中断,然后24Mh ...

可能中断函数没写

CyberHamster 发表于 2024-12-23 14:33:22

session 发表于 2024-12-22 23:17
程序没啥,就是一个串口1中断,初始化EA=1,加了1000ms延迟,用仿真测试了下,只要打开EA总中断,然后24Mh ...

打开的中断必须要有中断函数

session 发表于 2024-12-24 00:47:06

CyberHamster 发表于 2024-12-23 14:33
打开的中断必须要有中断函数

//void SendLongT(u32 l)       //发送文本
//{                       
//        u8 str2;
//        sprintf(str2,"%lu",l);
//        SendStr(str2);
//}

经过仿真屏蔽代码调试发现是上述代码与RTC有冲突,应该是函数sprintf函数与RTC有冲突,具体原因不详,屏蔽上述代码后就没有问题了

session 发表于 2024-12-24 00:47:41

邮箱 发表于 2024-12-23 09:57
可能中断函数没写

//void SendLongT(u32 l)         //发送文本
//{                     
//      u8 str2;
//      sprintf(str2,"%lu",l);
//      SendStr(str2);
//}

经过仿真屏蔽代码调试发现是上述代码与RTC有冲突,应该是函数sprintf函数与RTC有冲突,具体原因不详,屏蔽上述代码后就没有问题了

men007 发表于 2024-12-24 07:06:26

仔细看看编译链接的提示,可能某个模块没链接到
页: [1]
查看完整版本: keil5更改device后编译正常,运转异常