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 配置其中一個 UArts。

我正在按照這裡的文檔中顯示的示例代碼並粘貼在下面。

示例代碼適用於調試 UART,但是當嘗試使用數據表(P0_0 和 P0_1)的引腳映射中所示的其他 SCB 之一時,我從 cyhal_uart_init 函數獲得了引腳配置錯誤。

我不確定為什麼或如何使用 HAL。

有沒有人有一個示例項目,展示如何在 XMC7000 系列的非調試 UART 端口之一上使用 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);
 

 

1 解決方案
Translation_Bot
Community Manager
Community Manager
Community Manager

'UART 發射和接收' 代碼示例使用重新定位的 API,因此它不是一個純粹的 UART 代碼示例。

上面列出的代碼 @keenansoe,直接來自 API 文檔。當正確粘貼到模塊框項目中時,它可以按預期工作。

@keenansoe,需要注意的一件事是,當您使用 HAL API 時,需要確保在設備配置器中未配置相應的引腳/外圍設備(或其他資源)。 這 CAN 導致引腳配置錯誤結果(我懷疑這就是您所遇到的情況)。

檢查裝置組態程式使用者介面中是否未"核"取 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 幫助你。

BR,

歐文

0
Translation_Bot
Community Manager
Community Manager
Community Manager

你好歐文!

感謝您的回复和例子。 我看到你的例子使用 PDL 庫而不是 CY HAL 函數。

你有使用 CYHAL 的例子嗎? 例如,我是否只禁用設備配置器設置以便將 HAL 用於 scb3?

不幸的是,我的確切項目我無法分享。

 

謝謝!

0
Translation_Bot
Community Manager
Community Manager
Community Manager

嗨,

如果你想使用CYHAL功能,你 CAN 使用官方示例'UART_Transmit_and_Receive'並更改引腳,或者你 CAN 使用你給我的代碼,然後使用示波器觀察你分配的引腳。CAN 看到您指定的引腳應該已經正確輸出了相應的信號。

我們的代碼只是將UART信號輸出到引腳,但是如果您想在PC中觀察該信號,則需要將其轉換為 USB 信號。對於引腳P13_0和P13_1, CAN 通過Kitprog進行轉換,其他引腳需要外部轉換器才能在PC上觀察其輸出。希望這 CAN 幫助你。

BR,

歐文

0
Translation_Bot
Community Manager
Community Manager
Community Manager

'UART 發射和接收' 代碼示例使用重新定位的 API,因此它不是一個純粹的 UART 代碼示例。

上面列出的代碼 @keenansoe,直接來自 API 文檔。當正確粘貼到模塊框項目中時,它可以按預期工作。

@keenansoe,需要注意的一件事是,當您使用 HAL API 時,需要確保在設備配置器中未配置相應的引腳/外圍設備(或其他資源)。 這 CAN 導致引腳配置錯誤結果(我懷疑這就是您所遇到的情況)。

檢查裝置組態程式使用者介面中是否未"核"取 P0_0 和 P0_1。

0
Translation_Bot
Community Manager
Community Manager
Community Manager

啊,非常感謝你! 我在設備配置器中設置了一些東西,這似乎搞亂了 CYHAL 功能。 謝謝!

0