Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/386.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/56.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 带STM32F746G-DISCO的微型UART和其他GPIO中断_Java_C_Serial Port_Stm32_Uart - Fatal编程技术网

Java 带STM32F746G-DISCO的微型UART和其他GPIO中断

Java 带STM32F746G-DISCO的微型UART和其他GPIO中断,java,c,serial-port,stm32,uart,Java,C,Serial Port,Stm32,Uart,我需要知道如何使用UART中断(当数据接收时,做我的工作)。 我不想使用带有while(true)(永久循环)的线程来读取输入流。 我们在C中有这些函数 LLCOMM_UART_callback and LLCOMM_BUFFERED_CONNECTION_dataReceived //main uart interrupt void USART6_IRQHandler(void) { LLCOMM_UART_callback(&LLCOMM_UARTs[UART6_INDE

我需要知道如何使用UART中断(当数据接收时,做我的工作)。 我不想使用带有while(true)(永久循环)的线程来读取输入流。 我们在C中有这些函数

LLCOMM_UART_callback and LLCOMM_BUFFERED_CONNECTION_dataReceived

//main uart interrupt

void USART6_IRQHandler(void)
{
    LLCOMM_UART_callback(&LLCOMM_UARTs[UART6_INDEX]);
}
/* Interrupt callback --------------------------------------------------------*/
void LLCOMM_UART_callback(LLCOMM_UART* llcomm)
{
    // retrieve LLCOM environment for given comIndex
    LLCOMM_BUFFERED_CONNECTION* env = &llcomm->header;
    UART_HandleTypeDef* handle = &llcomm->hal_uart_handle;

    uint8_t leave = interrupt_enter();

    // check RX
    if (__HAL_UART_GET_IT(handle, UART_IT_RXNE))
    {
        // read data, clear the interrupt and send data to MicroEJ framework
        LLCOMM_BUFFERED_CONNECTION_dataReceived(env, handle->Instance->RDR);
    }
}
但是我找不到如何将这些接口实现到java

第二部分是如何使用输入引脚中断并将其与java接口?这有什么API吗


谢谢,实现LLCOM_UART本机接口将允许您在Java中使用ECOM COMM

UART中断由底层BSP(在C中)处理,该BSP缓存在缓冲区中接收的数据,直到Java线程唤醒以获取读取的数据。因此,在中断处理或“永远循环”之间没有选择,它是:

  • 中断处理在C语言中,数据读取后缓存到缓冲区
  • Java线程定期唤醒并检查缓冲区中是否有数据
UART的引脚配置和中断处理不是在Java中完成的,而是在BSP级别在C中完成的,在Java中仅将UART用作Java流

您可以在我们的GitHub[1]中找到Java comm连接器的使用示例

至于实现LL_UART C端,您可以看看它是如何在现有平台上实现的[2]。在归档文件中,您可以找到一个BSP for STM32F7476G-DISCO的实现,此BSP包含一个LLU UART实现(在
platformSource\STM32F746GDISCO-846SI-platformSource.zip\STM32F746GDISCO-846SI-3.1.5-BSP\Projects\STM32746G Discovery\Applications\microj\src comm

对于GPIO,存在HAL库[3]

加丹

[1]

[2]


[3] 实现LLCOM_UART本机接口将允许您在Java中使用ECOM COMM

UART中断由底层BSP(在C中)处理,该BSP缓存在缓冲区中接收的数据,直到Java线程唤醒以获取读取的数据。因此,在中断处理或“永远循环”之间没有选择,它是:

  • 中断处理在C语言中,数据读取后缓存到缓冲区
  • Java线程定期唤醒并检查缓冲区中是否有数据
UART的引脚配置和中断处理不是在Java中完成的,而是在BSP级别在C中完成的,在Java中仅将UART用作Java流

您可以在我们的GitHub[1]中找到Java comm连接器的使用示例

至于实现LL_UART C端,您可以看看它是如何在现有平台上实现的[2]。在归档文件中,您可以找到一个BSP for STM32F7476G-DISCO的实现,此BSP包含一个LLU UART实现(在
platformSource\STM32F746GDISCO-846SI-platformSource.zip\STM32F746GDISCO-846SI-3.1.5-BSP\Projects\STM32746G Discovery\Applications\microj\src comm

对于GPIO,存在HAL库[3]

加丹

[1]

[2]


[3]

java中有几个用于串行端口的库。看:Sry,我想我误解了你的问题。希望你们能很快得到有用的答案。不,pb,你们知道如何使用c语言中的接口(比如java类中的接口)来调用java接口吗@Letz这里有几个在java中使用串行端口的库。看:Sry,我想我误解了你的问题。希望你们能很快得到有用的答案。不,pb,你们知道如何使用c语言中的接口(比如java类中的接口)来调用java接口吗@LetzHey Gaëtan很高兴在这里见到你。我需要一个数据在串行端口的确切时刻,然后触发一些东西。你从来没有告诉过我如何得到串行缓冲区中有数据的确切时刻。为此,我们需要中断优先级来启动读取数据线程,或者使用for ever循环来始终读取串行缓冲区。我说的是检测串行缓冲区中是否有数据,我们需要uart中断或永久循环。我希望java部分中的接口uart中断没有永久循环,我真的希望您理解我,或者如果您有@Biftor pm me,我们可以在电报中讨论它。请与我联系以找到解决方案。嘿,Gaëtan,很高兴在这里见到您。我需要一个数据在串行端口的确切时刻,然后触发一些东西。你从来没有告诉过我如何得到串行缓冲区中有数据的确切时刻。为此,我们需要中断优先级来启动读取数据线程,或者使用for ever循环来始终读取串行缓冲区。我说的是检测串行缓冲区中是否有数据,我们需要uart中断或永久循环。我希望java部分中的接口uart中断没有永久循环,我真的希望您理解我,或者如果您有@Biftor pm me,我们可以在电报中讨论它。请与我联系以找到解决方案。