Tip / ログイン to post questions, reply, level up, and achieve exciting badges. Know more

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

そこで、PC 上のターミナル アプリケーションでMULTICH_CONNECT_PCBを実行できるように、サンプル コードを myXMC 1100 ブートキットにフラッシュしました。 PCでシリアル接続を開いても応答がありません。 これが Arduino 互換のCOOLDIM_PRG_BOARDであるなら、なぜ Arduino のサンプルやコマンドを使用しないのかと考えたのです。 2 番目のコード例を参照してください 。 魅力のように動作します...

1. このCOOLDIM_PRG_BOARDが「Arduino 互換」であれば、見つけた Arduino の例を使用できますか? COOLDIM_PRG_BOARDにはいくつかの制限があることは理解していますが、ほとんどの場合、これは正確でしょうか? もしそうなら、Arduinoロジックで作業できるのに、なぜXMCライブラリを使用するのですか。

2.最初のサンプルコードが何をしようとしているのかを理解していませんか? 以下にリンクされているサンプルコードの下に、正確なコード/ readme.txtなどがあります。 この例は、tx 回線と rx 回線との実際の物理接続を想定していますか。
https://www.infineon.com/cms/en/product/evaluation-boards/kit_xmc11_boot_001/

 

/*
 * Copyright (C) 2015 Infineon Technologies AG. All rights reserved.
 *
 * Infineon Technologies AG (Infineon) is supplying this software for use with
 * Infineon's microcontrollers.
 * This file can be freely distributed within development tools that are
 * supporting such microcontrollers.
 *
 * THIS SOFTWARE IS PROVIDED "AS IS". NO WARRANTIES, WHETHER EXPRESS, IMPLIED
 * OR STATUTORY, INCLUDING, BUT NOT LIMITED TO, IMPLIED WARRANTIES OF
 * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE APPLY TO THIS SOFTWARE.
 * INFINEON SHALL NOT, IN ANY CIRCUMSTANCES, BE LIABLE FOR SPECIAL, INCIDENTAL,
 * OR CONSEQUENTIAL DAMAGES, FOR ANY REASON WHATSOEVER.
 *
 */

/**
 * @file
 * @Date 01 Sept, 2015
 * @version 1.0.0
 *
 * @brief UART demo example
 *
 * Send a periodic message via UART
 *
 * History 
* * Version 1.0.0 Initial
* */ #include "xmc_gpio.h" #include "xmc_uart.h" #define TICKS_PER_SECOND 1000 #define TICKS_WAIT 1000 const uint8_t message[] = "Hello world!!\n"; XMC_GPIO_CONFIG_t led1_config; XMC_GPIO_CONFIG_t rx_pin_config; XMC_GPIO_CONFIG_t tx_pin_config; XMC_UART_CH_CONFIG_t uart_config; void SysTick_Handler(void) { uint32_t index; static uint32_t ticks = 0; ticks++; if (ticks == TICKS_WAIT) { XMC_GPIO_ToggleOutput(XMC_GPIO_PORT0,6); for (index = 0; index < sizeof(message) - 1; index++) { XMC_UART_CH_Transmit(XMC_UART0_CH1, message[index]); } ticks = 0; } } int main(void) { /* Configure LED1 */ led1_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL; XMC_GPIO_Init(XMC_GPIO_PORT0,6, &led1_config); /* UART configuration */ uart_config.data_bits = 8U; uart_config.stop_bits = 1U; uart_config.baudrate = 115200; uart_config.parity_mode = XMC_USIC_CH_PARITY_MODE_NONE; /* Configure RX pin */ rx_pin_config.mode = XMC_GPIO_MODE_INPUT_INVERTED_TRISTATE; XMC_GPIO_Init(XMC_GPIO_PORT1,3, &rx_pin_config); XMC_UART_CH_SetInputSource(XMC_UART0_CH1,XMC_UART_CH_INPUT_RXD,USIC0_C1_DX0_P1_3); /* Configure UART channel */ XMC_UART_CH_Init(XMC_UART0_CH1, &uart_config); /* Start UART channel */ XMC_UART_CH_Start(XMC_UART0_CH1); /* Configure TX pin */ tx_pin_config.mode = XMC_GPIO_MODE_OUTPUT_PUSH_PULL_ALT7; XMC_GPIO_Init(XMC_GPIO_PORT1,2, &tx_pin_config); /* Send a message via UART periodically */ SysTick_Config(SystemCoreClock / TICKS_PER_SECOND); while(1) { /* Infinite loop */ } }

 

 

 

 

 

 

void setup() {
  Serial.begin(9600); // Set the baud rate to match the device's baud rate
}

void loop() {
  // Check if data is available to read from the Serial port
  if (Serial.available() > 0) {
    char incomingData = Serial.read(); // Read the incoming data
    
    // Process the incoming data (you can add your logic here)
    processIncomingData(incomingData);
  }

  // Your additional code can go here
  
  // Send data to the other device
  sendDataToCard();
  
  // Delay for stability and to prevent flooding the Serial port
  delay(1000);
}

void processIncomingData(char data) {
  // Add your logic to process the incoming data here
  // For example, you can print it to the Serial Monitor
  Serial.print("Received: ");
  Serial.println(data);
}

void sendDataToCard() {
  // Add your logic to send data to the card here
  // For example, send a message every second
  static int counter = 0;
  Serial.print("Sending: Hello Card! Count: ");
  Serial.println(counter++);
}

 

 

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/XMC/XMC-boards-and-arduino-compatible-commands/td-p/687214

0 件の賞賛
1 解決策
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@elibarber

1)Arduino互換 COOLDIM_PRG_BOARDの場合、Arduinoコマンドを使用してプロジェクトをビルドし、Arduino IDEを使用してXMC1100_bootkitに直接フラッシュできます。 ただし、その前にXMC-for-ArduinoライブラリをArduino IDEにインストールする必要がありますので、以下の 6EDL_SPI_LINK を参照してください。

https://github.com/Infineon/XMC-for-Arduino

そして、その例がArduinoコマンドにあることがわかります。

Owen_Su_0-1706757315578.png

2)最初の例では、rxとrxを物理的に MULTICH_CONNECT_PCB する必要はありません。 これがお役に立てば幸いです。

ブラジル、

オーウェン

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/XMC/XMC-boards-and-arduino-compatible-commands/m-p/687352

元の投稿で解決策を見る

0 件の賞賛
1 返信
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは、@elibarber

1)Arduino互換 COOLDIM_PRG_BOARDの場合、Arduinoコマンドを使用してプロジェクトをビルドし、Arduino IDEを使用してXMC1100_bootkitに直接フラッシュできます。 ただし、その前にXMC-for-ArduinoライブラリをArduino IDEにインストールする必要がありますので、以下の 6EDL_SPI_LINK を参照してください。

https://github.com/Infineon/XMC-for-Arduino

そして、その例がArduinoコマンドにあることがわかります。

Owen_Su_0-1706757315578.png

2)最初の例では、rxとrxを物理的に MULTICH_CONNECT_PCB する必要はありません。 これがお役に立てば幸いです。

ブラジル、

オーウェン

smartconx_target@Q!w2e3r4t5y6u7i8o9p0||/t5/XMC/XMC-boards-and-arduino-compatible-commands/m-p/687352

0 件の賞賛