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

注册于 1 year ago

回答
580
文章
1
关注者
7

官方BootLoader配置时,只能选择大于128K。如果不想用可以自己写个BootLoader。
可以参考这个文章自己 制作极简版bootloader

中科蓝讯 AB32VG1开发板外设暂不支持USB HOST。a023320424dbfd7070f47db127627e31.png

建议先debug一下,看程序能不能正常运行,如果可以就好查了。
另外能把全部的编译和下载日志都给发出来么,方便看整个过程有没有出现问题。

网络问题,检查一下是不是断网了。获取git资源的时候无法连接。

有的软件包需要例程,有的直接添加软件包就可以直接使用了呀,没有例程的,所以没有这个选项。
比如mpu6xx、FAL,打开后就直接调用接口使用了,不要再进行初始化或设置之类的。
比如AT设备,这个软件包需要先初始化配置串口设备等参数,所以给出了示例(这个示例就是一个ec20_device_register EC20设备的注册操作),不使能示例的话还需要自己写初始化函数才能用。
7777.png

光标在动的话,应该是有数据的,有可能数据是0x00之类的,显示不出来字符。用十六进制显示试试能不能看到数据。

Env 是 RT-Thread 推出的开发辅助工具,针对基于 RT-Thread 操作系统的项目工程,提供编译构建环境、图形化系统配置及软件包管理功能。
Studio就不用这个了,直接打开RT-Thread Settings,能实现同样的效果,但是操作起来更方便,完全的图形化配置。

可能软件出问题了,卸载重装一下软件吧。

可以的,先在studio导入MDK工程,然后即可编译下载
555.png

NRF24_DEMO_CE_PIN是nrf24l01的CE引脚,用来选择Tx或者Rx模式,这个引脚需要设置使用;
NRF24_DEMO_IRQ_PIN 是irq中断引脚,如果不用irq引脚,这个可以不用设置。
选择使用软件包的demo的话,在配置界面需要完成配置,添加所使用的引脚的引脚号
(注意RT-Thread 提供的引脚编号需要和芯片的引脚号区分开来,它们并不是同一个概念,引脚编号由 PIN 设备驱动程序定义,和具体的芯片相关)
333.png
由于新的drv_gpio.c取消了引脚号表,查询引脚号不方便,那么也可以直接在demo.c中直接使用GET_PIN()来定义(用的那个就是哪个,不用就写 “-1”),使用时需要添加 #include <drv_common.h> ,否则会报错。
444.png

你这种应用的话,应该是PM组件和AT组件的配合使用了,当系统要休眠时,通过AT组件发送指令将通信模块休眠,然后再通过PM组件关闭串口等不用的设备,使单片机进入相应的低功耗模式即可。

raspi3-32好像不支持网卡驱动,需要自己来移植了,看一下他的网卡型号,可以参考其他板子的BSP同型号网卡驱动来移植。
raspi4已经增加有网卡驱动了,也可以参考。

目前ART-PI的多媒体扩展板还没有人提交相关的demo,所以只能自己做了。可以参考一下正点原子的录音机例程(比如说正点原子北极星STM32H750XBH6开发板就有录音机的实验例程,代码都可以直接在官网下载)。
楼主做好后也可以在论坛分享一下经验,供大家参考哈。

ART-Pi的扩展引脚说明只是写了 PA9、PA10 这个USART1。
其实还有很多引脚可以复用成串口的呀,比如说PA2、PA3是USART2,PB12、PB13 是UART5,等等。集合H750手册看一下,还是有挺多可以用的。

对于socket掉线重连的问题,关键在掉线判断:
1.接收判断,socket接收采用阻塞模式,当服务端主动断开,或者出现异常,那么接收长度=0,或者小于0,可以判断掉线,关闭当前socket连接,然后重连;
2.发送判断,socket发送数据,当socket连接出现异常,发送失败,认为掉线,关闭当前连接,然后重连;
3.心跳包,通信协议实现,socket的客户端和服务端增加心跳包,定时交互一条数据,如果超时未收到心跳数据包,则认为掉线,然后重连;(当服务端未主动断开,而板子的网络出现异常时,我这边遇到过)

了解了socket的掉线判断之后,重连机制就好做了,具体思路如下:
1.单独做一个socket的连接线程,该线程做socket连接状态判断,如果判断socket处于掉线状态,那么就进行connect,connect成功后,则启动接收线程;
2.socket接收线程,采用阻塞接收模式,当接收错误,判断掉线后,把socket的状态置位掉线状态,同时关闭当前socket连接,释放接收缓存,关闭该线程(跳出while循环,即可自动关闭该线程);
3.调用socket发送后,如果发送失败,判断掉线,也需把socket连接状态置为掉线状态,同时关闭当前socket(socket关闭后,接收会出错,能直接跳出while循环,关闭接收线程);
按照上述思路,两个线程基本上能实现绝大部分情况的掉线重连,不过需要注意最好不要把CAN的发送放在接收线程里,避免CAN发送异常影响socket接收数据的情况。

回到
顶部

发布
问题

投诉
建议