bugdisappear 发表于 2026-6-8 09:01:45

STC8H8K64非主循环无法printf

我在使用STC8H8K64U的时候出现了一个情况。一旦我在mian.c里面的main函数的while里面可以使用printf和printf_usb。
但是如果我在其他.c如app.c bsp.c就无法打印数据到串口助手。
我有一个for轮询的协程式调度器,像LED 1s翻转、ADC采样、浮点数算法都可以运行,但是只有运行printf就是没有输出。
我在led翻转任务printf结果发现led不翻转了只保持一个状态,但是和他一起的看门狗任务还是可以正常喂狗,反之换printf到看门狗也是一样

bugdisappear 发表于 2026-6-8 09:03:40

堆栈问题吗?我是aicube生成的工程。

狂热主宰 发表于 2026-6-8 09:24:43

bugdisappear 发表于 2026-6-8 09:03
堆栈问题吗?我是aicube生成的工程。

可能该外设需要互斥访问

ercircle 发表于 2026-6-8 10:07:13

中断嵌套?提高USB优先级?还不行上传问题工程


bugdisappear 发表于 2026-6-8 10:15:34

这个是配置图

bugdisappear 发表于 2026-6-8 10:16:35

狂热主宰 发表于 2026-6-8 09:24
可能该外设需要互斥访问

可是我整个工程只实现了usb-cdc和翻转led和喂狗

bugdisappear 发表于 2026-6-8 10:17:26

ercircle 发表于 2026-6-8 10:07
中断嵌套?提高USB优先级?还不行上传问题工程

那我试一下提高优先级

梁工 发表于 2026-6-8 11:24:07

bugdisappear 发表于 2026-6-8 10:17
那我试一下提高优先级

printf是使用查询方式操作的,不要放在中断里执行,其余随意使用没遇到过问题。

bugdisappear 发表于 2026-6-8 15:52:38

梁工 发表于 2026-6-8 11:24
printf是使用查询方式操作的,不要放在中断里执行,其余随意使用没遇到过问题。 ...

我是在主函数轮询的,中断只提供tick
页: [1]
查看完整版本: STC8H8K64非主循环无法printf