请教各位大佬一个TMOS方面的问题

小弟我刚入坑沁恒的单片机,然后很多都不懂,在新建一个工程时,无法正常进入任务函数里,不知道那儿出了问题...

现在我想先点亮一颗LED灯珠,在只用while循环时就能正常点亮LED灯珠,只是换成了TMOS的任务来点亮灯珠时,却无法正常运行,不知道那儿出了问题了,

1710126961112457.jpg

.......

1710126961206411.jpg


刚才漏说了一个重要的问题,debug时,发现无法进入第二张图的50行,56行的断点,感觉就是无法进入到函数

LED_Task_EVT()里面来~~~



1、需要包含蓝牙库使用,TMOS是有调用协议栈的函数的。因此一般开发使用tmos的时候,是在蓝牙的例程基础上进行开发的,可以使用peripheral例程,这样就不需要再移植协议栈;

2、灯闪烁无法正常,可以将tmos的最后一个参考时间稍微给大一些,如1600,给的时间参数太短,可能导致肉眼无法识别到;

3、提供一份tmos讲解:

WCH TMOS用法详解 - debugdabiaoge - 博客园 (cnblogs.com)


刚才试过2楼提过的方法,因为我是有逻辑分析仪,第2点可以排除;试过后发现Debug是无法进入LED任务callback,我之前在LED任务里面设置断点的,反正单片机就是在循环跑TMOS_SystemProcess()函数;不知道是不是我的创建工程出问题了...


问题已经解决了,我刚才只是把CH58X_BLEInit()运行而已,所以运行结果是LED任务不能正常运行,接着我试着把GAPRole_PeripheralInit()和Peripheral_Init()两个函数一起运行后,LED任务是能正常闪烁了!



建议直接在蓝牙的例程里面进行使用,创建tmos任务就可以了,不需要再重新新建工程的。


只有登录才能回复,可以选择微信账号登录