1 写在前面 既上上周在RA2E1上把RT-Thread跑起来之后,在上周日的晚上,马不停蹄地给《致敬未来的攻城狮计划》的小伙伴们开了一趟在线直播课,旨在辅导小伙伴们尽快上手基于RA2E1开发板的开发,同时也把基于RT-Thread的一些开发方法和基本操作流程给大家介绍了一遍。 期间遇到了一些小插曲,说起来还是有点尴尬,都...
函数返回 RT_EOK,表示成功停止定时器。返回 -RT_ERROR,说明定时器已经处于停止状态了。 定时器应用演示 理论+实践是学习新知识最有效的方法。 举例来演示如何创建定时器。这个例程动态创建两个定时器,一个单次定时器,一个周期定时器,并让定时器运行一段时间后停止。代码如下: 编译运行结果如下: 周期性定时器 1 ...
返回 -RT_ERROR,说明定时器已经处于停止状态了。 定时器应用演示 理论+实践是学习新知识最有效的方法。 举例来演示如何创建定时器。这个例程动态创建两个定时器,一个单次定时器,一个周期定时器,并让定时器运行一段时间后停止。代码如下: #include <rtthread.h> /* 定时器的控制块 */ static rt_timer_t ...
参数mb为邮箱的句柄;value为邮箱消息存储地址;timeout为等待超时时间。 接收成功,则返回RT_EOK;接收超时,则返回-RT_ETIMEOUT;接收失败,返回-RT_ERROR。 只有当邮箱中有邮件时,接收者才能立即取到邮件并返回RT_EOK;否则接收线程会根据设定的超时时间,挂起在等待线程队列或者立即返回(超时时间设定为 0)。 实战演练 ...
但是需要注意的是,如果互斥量没有被创建,那是无法被删除的,动脑子想想都知道,没创 建的东西就不存在,怎么可能被删除。删除互斥量的时候会把所有阻塞在互斥量的线程唤醒,被唤醒的线程则会得到一 个错误码-RT_ERROR; mutex是rt_sem_delete()传入的参数,是互斥量句柄,表示的是要删除哪个互斥量。
系统不再使用 rt_event_create() 创建的事件集对象时,通过删除事件集对象控制块来释放系统资源。在删除一个事件集对象时,应该确保该事件集不再被使用。在删除前会唤醒所有挂起在该事件集上的线程(线程的返回值是RT_ERROR),然后释放事件集对象占用的内存块。
LOG_I("%s", cJSON_GetErrorPtr());if(cjson_ptr ==NULL) { LOG_I("cJSON_Parse failed");continue; } 加入这段cJSON的防错代码之后. 目前的解决方式: 增加DMA buffer的大小RT_SERIAL_RB_BUFSZ #defineRT_SERIAL_RB_BUFSZ 256 目的是确保一帧数据(这里就是一帧JSON报文),小于这个RT_SERIAL_RB_BUF...
返回RT_EOK表示发送成功;返回-RT_ETIMEOUT表示超时;返回-RT_ERROR表示发送失败。 邮件的内容可以是 32 位任意格式的数据,一个整型值或一个指向某个缓冲区的指针。可以根据自己的实际应用进行设定。 注意:在中断服务例程中发送邮件时,应该采用无等待延时的方式发送,直接使用rt_mb_send()或者等待超时设定为 0 的函...
线程挂起成功,返回 RT_OK;挂起失败,则返回 -RT_ERROR。 注意,通常不应该使用这个函数来挂起线程本身。 恢复一个挂起的线程,就是让它重新进入就绪状态,并将线程放入系统的就绪队列中。使得线程恢复的函数接口为: rt_err_t rt_thread_resume (rt_thread_t thread); ...
-RT_ERROR 失败,返回错误 */ rt_err_t rt_mb_recv(rt_mailbox_t mb, rt_ubase_t *value, rt_int32_t timeout) 1.3 示例(指针传递) 2个示例,第一个是正常的消息传递,第二个是与邮箱创建个数有关的引导示例。 1.3.1 邮箱消息传递 前面说到过,邮箱中的每一封邮件只能容纳固定的 4 字节内容,但是4...