小小李sunny
小小李sunny
This guy hasn't written anything yet

注册于 1 year ago

回答
370
文章
0
关注者
3

错误已经描述的很明显了嘛,led_thread_entry定义了线程函数的名字,又定义了一个同名的数组?
led_thread_stack 没定义。
你这是太不细心了吧,应该是跟着视频操作的时候只顾照搬了,没有理解,所以搬错了也也不知道。

studio中,当调试启动成功后,程序会在 main 方法处挂起,点击相应的按钮可以进行操作。例如继续,程序会继续全速运行,点击单步可以进行单步运行。
debugopt.png

重新生成一个工程试试吧。正常不应该会生成两个finsh文件夹。
而且你这个里边的rt_hw_console_getchar()函数貌似不太对呀。
参考一下官方教程Cube MX 添加 FinSH 源码

没太看明白你这个问题。
按我理解的说,从你的图片看,是发的AT指令,收到的是另外一个发AT指令,而应该返回的OK却延迟一步打印出来了。也就是说显示的顺序有点混乱,AT指令应该是发送成功了的,否则不会有返回OK。
你每发完一个AT指令后的等待操作是否执行了呢,一定要等待超时后再发送下一条指令。
你贴的代码能看到这个参数结构还是可以的,但是不知道发送和接收代码是如何执行的呢?

目前RT貌似确实没有drv_can驱动,建议可以参考stm32的drv_can移植一下。

在board.h文件中,不用定义BSP_USING_TIM8的,你试试把这个关掉。
其他暂时没有看出问题。

你是直接添加的ulog.h和ulog.c文件么,这样是不行的呀。
需要用env工具,menuconfig,打开ulog组件,再用scons命令生成mdk工程,这样才行呀。

你是基于芯片创建的工程吧。这种情况在board.h文件中,有这个宏定义被注释掉了,打开即可。

这个貌似跟是否使用RT关系不大。关键在于数据的接收和存储,建议如下:
1.串口通信的通信协议要制定好,80K的数据分包发送(每包要有序号来区分),收发双方都要有判断,一包数据接收完成后,给发送端一个回复,发送端收到回复后发送下一包,否则继续发送该包数据。以此类推,这样才能保证数据接收正确完整,不会被打断或者出现错误;
2.接收成功一包数据即存储道flash,如果判断数据包不连续,或者数据错误则不存储,保证存入数据的准确完整。

打开电脑的设备管理器,插拔设备验证一下你实际的端口是COM?这种错误跟程序没关系,要么是COM口被占用了,要么就不是这个口。

没有,studio目前还不支持这种功能。期待后期版本能否增加了。

没错的,这个管脚号是RT内部自定义的号码,不是实际芯片的引脚序号,不要搞错了。

board.h中开启相关的定时器了没?

 #define BSP_USING_TIM 
 #define BSP_USING_TIM1

cubemx生成的相关配置代码,rt是会自动调用的,不过需要在RT开启相关的组件。
你要用IO口的话,不用重新配置呀,直接开启pin设备就行了。直接用pin设备的相关接口就可以了。

发布
问题