flashman2002
flashman2002
This guy hasn't written anything yet

注册于 2 years ago

回答
1096
文章
0
关注者
8

sizeof是获取变量类型的长度,你这里是需要获取字符串的长度,应该使用strlen函数才对。

我个人建议是不要在中断中输出信息了,毕竟中断中的处理要求及时快速。

查看硬件定时器文档:

/* 设置定时器超时值为5s并启动定时器 */
    timeout_s.sec = 5;      /* 秒 */
    timeout_s.usec = 0;     /* 微秒 */
    rt_device_write(hw_dev, 0, &timeout_s, sizeof(timeout_s));

建议先升级rtt版本后再编译,不然对之前的版本无法进行技术支持了。

建议是每个采样线程都上传2次消息队列,一个给本地显示,一个给远端发送数据线程即可。

感觉你timer的线程优先级为0是不对的。0为最高优先级。请检查你线程优先级的设置。

你可以在msh上使用ps命令,看是否有main的线程名称一直存在。或者你在死循环中增加以下打印函数,看看效果。
其实main主线程是可以执行一次就退出的,因为它也是一个线程而已。

1、检查电脑是否有杀毒软件干扰;
2、升级RTT-STUDIO到最新版本;
3、升级apt-pi的SDK到最新版本;
4、升级电脑winidows;
5、安装微软的c++运行库;

首先请检查DAP的4根连接线是否连接有误。

请先确认硬件的串口管脚的一致性,然后是串口的接地是否连接等细节需要关注了。

你可以单步调试,看看问题出在哪里。这段代码中的break作用是跳出循环,也就是代替goto的一种写法而已,但系统重启的问题不在这里,你需要仔细查一下。

你的源码中是丢失了drv_gpio.h文件吗?建议可以重新生成一下工程。

你的系统的SPI没有配置好,所以出现关键的变量类型没有被定义的错误。

回到
顶部

发布
问题

投诉
建议