XMC7000上のUARTにCYHALを使用した例

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

cross mob
Translation_Bot
Community Manager
Community Manager
Community Manager

みなさん、こんにちは!

XMC7200評価キットを持っています。

CYHALを使用してUARTの1つを設定しようとしています。

私はここのドキュメントで示されているコード例に従っており、以下に貼り付けています。

サンプル コードはデバッグ UART では正常に機能しますが、データシート (P0_0 および P0_1) のピン マッピングに示されているように、他の SCB の 1 つを使用しようとすると、cyhal_uart_init 関数からピン構成エラーが発生します。

HALを使用する理由や方法がわかりません。

XMC7000シリーズの非デバッグUARTポートの1つでCYHAL関数を使用する方法を示すサンプルプロジェクトはありますか?

 

    #define DATA_BITS_8     8
    #define STOP_BITS_1     1
    #define BAUD_RATE       115200
    #define UART_DELAY      10u
    #define RX_BUF_SIZE     4
    #define TX_BUF_SIZE     4
 
    // Variable Declarations
    cy_rslt_t    rslt;
    cyhal_uart_t uart_obj;
    uint32_t     actualbaud;
    uint8_t      tx_buf[TX_BUF_SIZE] = { '1', '2', '3', '4' };
    uint8_t      rx_buf[RX_BUF_SIZE];
    size_t       tx_length = TX_BUF_SIZE;
    size_t       rx_length = RX_BUF_SIZE;
    uint32_t     value     = 'A';
 
    // Initialize the UART configuration structure
    const cyhal_uart_cfg_t uart_config =
    {
        .data_bits      = DATA_BITS_8,
        .stop_bits      = STOP_BITS_1,
        .parity         = CYHAL_UART_PARITY_NONE,
        .rx_buffer      = rx_buf,
        .rx_buffer_size = RX_BUF_SIZE
    };
 
    // Initialize the UART Block
    rslt = cyhal_uart_init(&uart_obj, P0_1, P0_0, NC, NC, NULL,
                           &uart_config);
 
    // Set the baud rate
    rslt = cyhal_uart_set_baud(&uart_obj, BAUD_RATE, &actualbaud);
 
    // Begin Tx Transfer
    cyhal_uart_write(&uart_obj, (void*)tx_buf, &tx_length);
    cyhal_system_delay_ms(UART_DELAY);
 
    // Send a Character
    cyhal_uart_putc(&uart_obj, value);
    cyhal_system_delay_ms(UART_DELAY);
 
    // Begin Rx Transfer
    cyhal_uart_read(&uart_obj, (void*)rx_buf, &rx_length);
    cyhal_system_delay_ms(UART_DELAY);
 

 

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

'UART_Transmit_and_Receive' コード例は Retarget_IO API を使用しているため、純粋な UART コード例ではありません。

上記の@keenansoe によってリストされたコードは、API ドキュメントから直接取得されます。 ModusToolboxプロジェクトに適切に貼り付けると、期待どおりに機能します。 

@keenansoe、注意すべき点の1つは、HAL APIを使用している場合は、それぞれのピン/ペリフェラル(またはその他のリソース)がデバイスコンフィギュレータ内で設定されていないことを確認する必要があることです。 これにより CAN ピン構成エラーの結果が発生する可能性があります(これはあなたが経験していることだと思います)。

デバイスコンフィギュレータUIでP0_0とP0_1が「チェック」されていないことを確認します。

元の投稿で解決策を見る

0 件の賞賛
5 返答(返信)
lock attach
Attachments are accessible only for community members.
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

1)あなたの手口のバージョンは何ですか? 最新バージョンですか? Modusが古いバージョンの場合は、最新バージョンに更新してから再試行してください。

2)あなたのプロジェクトを私たちと共有してもらえますか? だから私たちはあなたが私たちの側でそれをテストするのを手伝 CAN 。

3)デバイスコンフィギュレータを使用して非デバッグUARTポートを設定する例がありますので、 CAN それを見てください。

これがお役 CAN ことを願っています。

ブラジル、

オーウェン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちはオーウェン!

回答と例をありがとう。 あなたの例では、CY HAL関数の代わりにPDLライブラリを使用しているようです。

CYHALの使用例はありますか? たとえば、scb3 に HAL を使用するために、デバイス コンフィギュレーターの設定を無効にするだけですか。

残念ながら、私の正確なプロジェクトは共有できません。

 

感謝!

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

こんにちは

CYHAL関数を使用する場合は、公式の例「UART_Transmit_and_Receive」を使用してピンを変更する CAN 、または私に与えたコードを使用してから、オシロスコープを使用して割り当てたピンを観察する CAN 。 指定したピンが対応する信号を正しく出力しているはず CAN わかります。

私たちのコードはUART信号をピンに出力するだけですが、PCで信号を観測したい場合は、USB信号に変換する必要があります。 ピンP13_0とP13_1については、Kitprogで変換 CAN 、他のピンはPCでの出力を監視するために外部コンバータを必要とします。 これがお役 CAN ことを願っています。

ブラジル、

オーウェン

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

'UART_Transmit_and_Receive' コード例は Retarget_IO API を使用しているため、純粋な UART コード例ではありません。

上記の@keenansoe によってリストされたコードは、API ドキュメントから直接取得されます。 ModusToolboxプロジェクトに適切に貼り付けると、期待どおりに機能します。 

@keenansoe、注意すべき点の1つは、HAL APIを使用している場合は、それぞれのピン/ペリフェラル(またはその他のリソース)がデバイスコンフィギュレータ内で設定されていないことを確認する必要があることです。 これにより CAN ピン構成エラーの結果が発生する可能性があります(これはあなたが経験していることだと思います)。

デバイスコンフィギュレータUIでP0_0とP0_1が「チェック」されていないことを確認します。

0 件の賞賛
Translation_Bot
Community Manager
Community Manager
Community Manager

ああ、どうもありがとうございました! デバイスコンフィギュレーターに何かが設定されていて、CYHALの機能をいじっていたようです。 感謝!

0 件の賞賛