出出啊
出出啊
It is Not the Mountain We Conquer, but Ourselves

注册于 6 months ago

回答
863
文章
18
关注者
53

系统什么版本?env什么版本,可能是版本问题,建议换个版本试试。
电脑上如果有之前安装的py环境也建议先卸载掉,还有git

hal 库没有添加 can 的hal 库文件
或者没有添加头文件。
参考刚刚我回答的这个问题,虽然不同外设,都是同类问题
https://club.rt-thread.org/ask/question/432471.html

这个问题可能和你前一个问题是类似原因引起的。知道怎么解决其中一个,也就有方向解决另一个。
或者有时候仅仅是自己小小的失误,都有可能。

缺 hal 文件吧。_HAL_Driver\Src\stm32f4xx_hal_eth.c
还有就是,xxx_hal_conf.h 里面打开#define HAL_ETH_MODULE_ENABLED 这个宏了吗?

没有定义,要么没有添加实现的源码,要么没有找到头文件定义。

__set_MSP(StackAddr); /* 设置主栈指针 */
    /* 函数指针赋值 */
    jumo_to_app = (_jumo_to_app)ResetVector;
    HAL_DeInit();
    jumo_to_app();

set msp 应该在jumo_to_app前边吧。

rtt 里也可以使用 select,但是好像没有poll 实现,用select 就足够了
启用 RT_USING_POSIX 后,dfs 就可以用select

又搜了一下,有pollfd 的实现,可以用
image.png

SFUD_USING_SFDP 这个可以不使用的,取消掉这个定义也能用

引脚外面有上拉电阻吗?
进 sfud_sfdp.c 文件的 read_sfdp_header 函数,断点看一下 header 数组的值是多少,是全 F 还是其它值。每次都是随机值,是硬件的原因的可能性还是比较大的。
每种 spi 设备对 miso mosi 电气特性要求不一样,其它 spi 设备能工作并不能保证所有总线上的设备都兼容电气特性。
同一块儿核心板,在开发板上能工作,换其它母版上不工作,唯一可怀疑的就是两块母板的电气特性差异。还是值得接个外接上拉电阻试试的。

亲身经历,用示波器看着好好的波形,可就是结果不对,接上拉电阻就搞定了

void WFI_SET(void)
{
    __asm volatile( "wfi" );
}
 
void INTX_DISABLE(void)
{
    __asm volatile
    ( 
        "cpsid   i     \n" 
        "bx      lr    \n"
    );
}

void INTX_ENABLE(void)
{
    __asm volatile
    ( 
        "cpsie   i     \n" 
        "bx      lr    \n"
    );
    
}

void MSR_MSP(u32 addr)
{
    __asm volatile
    (
        "msr psp, r0    \n"
        "bx r14         \n"
    );
}

试试这个。

import test.ttt 正常不?模块没导出完全啊。

这些寄存器的定义,地址等描述应该是芯片手册里,这个得去芯片官网上搜了。rt-thread 不提供这方面的资料。

目前,可能需要把外部本地包拷贝到工作空间的项目目录下。或者用一个替换其中原有的

这个问题搞定了吗?还有更详细的信息吗?
一般,找到设备,并不一定代表和设备能物理联通。这是俩概念

使用 DMA 配置上就行了,如图中的宏 BSP_SPI1_RX_USING_DMA, 或者在 studio env 中配置,或者在 rtconfig.h 头文件中添加这个宏定义,进而启用 spi1 的接收 DMA

RS485 的控制引脚可能需要你自己单独操作,不过,一般单片机做从设备,也就不考虑控制引脚了。
为啥 modbus_set_slave 了还要调用 modbus_read_registers? 后者不是主才能调用的吗?
slave 是直接调用 modbus_receive 接收数据的吧?

回到
顶部

发布
问题

投诉
建议