张世争
张世争
This guy hasn't written anything yet

注册于 1 year ago

回答
206
文章
78
关注者
30

信号量的操作可以封装成函数放在一个文件中,让其他的文件调用通过头文件调用函数的方式

如果有类似架构的MCU(at32),移植起来比较容易,复制一份相似MCU的bsp,进行修改会很快速。

参数指针:p,放错位置了,放在后面代替哪个RT_NULL(parameter)
tid = rt_thread_create("thread1", thread1_entry, p, ``

可以尝试提高接收线程的优先级。如果间隔短,可能会并包接收。

  • 自己定义这两个校验方式,如:在PARITY_EVEN下新增加定义:
#define PARITY_SPACE  3
#define PARITY_MASK   4
  • 依葫芦画瓢,搜索PARITY_EVEN的位置,新增加这个两个校验相应的操作。主要还是底层硬件支持这两种校验,并在驱动配置时配置好。

对象不能重复的初始化,可以封装一个发送函数命令,初始化只调用一次,发送函数可以多次调用。

  • 看你代码中注释掉了:<pin.h>,这是问题的所在。
  • pin的操作依赖pin框架。gpio引脚适配需要drv_gpio.c

c的代码,用

#ifdef __cplusplus
extern "C" {
#endif
#ifdef __cplusplus
}
#endif

包起来。

这是软件模拟的?建议直接上真机(开发板)。

  • 排除构建参考这篇文章:

https://club.rt-thread.org/ask/article/2443.html

  • CubeMX Settings配置引脚后,生成的main.c main.h,stm32xx_it.c等,不需要加入工程构建。main.c中有时钟相关的配置,可以COPY到board.c,引脚一般在stm32xx_msp.c中,这个msp.c文件要参与构建。

提示类型不匹配,把:rt_mb_recv(&mb, (rt_uint32_t *)&str 这里的:(rt_uint32_t *) 改为:(rt_ubase_t *)

想这种类似保存参数到NV的操作,改动NV结构后,是需要重新确认参数是否不受影响

都是实时的内核,只是完整版本包含更多的组件,更可以快速的开发

回到
顶部

发布
问题

投诉
建议