Mbed Studio中的X_NUCLEO_IHM03A1?

问题描述 投票:0回答:1

我想使用Mbed Studio使用官方库和1台电机示例为X_NUCLEO_IHM03A1板编写NUCLEO-L476RG程序。据我了解,库仅支持mbed os2。同时,Mbed Studio仅可用于mbed os 5。

编译项目后,我的设备重启并显示以下消息:

++ MbedOS Error Info ++
Error Status: 0x80010133 Code: 307 Module: 1                                                                                                                                  Error Message: Mutex: 0x20000578, Not allowed in ISR context
Location: 0x800E6DD
Error Value: 0x20000578
Current Thread: main Id: 0x20002018 Entry: 0x800B90D StackSize: 0x1000 StackMem: 0x200008E0 SP: 0x20001600
For more info, visit: https://mbed.com/s/error?error=0x80010133&tgt=NUCLEO_L476RG                                                                                                                          -- MbedOS Error Info --                                                                                                                                                = System will be rebooted due to a fatal error =
= Reboot count(=1) reached maximum, system will halt after rebooting

所以,我想也许这是解决方法:

1)以某种方式重写库,以便它可以与MBED OS 5一起使用(我不确定确切要修改什么)

2)在Mbed Studio中使用mbed os 2(不确定是否可行)

X_NUCLEO_IHM03A1库-https://os.mbed.com/teams/ST/code/X_NUCLEO_IHM03A1/

如何解决在Mbed Studio项目中为X_NUCLEO_IHM03A1编译的问题可以起作用?

mbed
1个回答
0
投票

我得到了与您相同的错误代码,但使用扩展板IHM01A1和Nucleo板F411RE。我不知道这是否适合您的董事会,但我认为值得尝试。名称不同,但代码看起来相似。

使用裸机配置文件无需任何修改即可使用,但此更改也适用于OS5。

在文件Components / L6474 / L6474.h中注释掉以下行:

void L6474_DisableIrq(void)
{
    // __disable_irq();
}

使用SPI进行读写时,会在主文件中调用此函数。

我不知道它为什么起作用,因为Mbed API要求您在使用SPI写功能之前先禁用中断,但是以某种方式删除禁用中断的这一行就可以使其工作。

© www.soinside.com 2019 - 2024. All rights reserved.