我有 ESP32-C3-DevKitC-02 通过 UART0 与 SIMA7672S 4G 模块接口,当我们从 ESP 模块发送 AT 命令时,我得到垃圾响应,我已经用 arduino 测试了 SIMA7672S 模块它在那里工作正常,我没有看到任何在那种情况下是垃圾。
仅使用 ESP,我看到的是垃圾数据,是否有任何我遗漏的设置?
输出:
I (2468) TX_TASK:写了 9 个字节
I (4478) RX_TASK:接收了 197 个字节:
xData:��mm����}��W��?��������_OM_}V}��_ ����{������M��o��_��{k����o��?��o��k��X����:����;'��=7
��jzkny����/��k��{z����o����{������{��o��o����K��ko
INCORPORATED
OK
而预期输出仅 INCORPORATED OK
代码:
- #include "freertos/FreeRTOS.h"
- #include "freertos/task.h"
- #include "esp_system.h"
- #include “esp_log.h”
- #include "driver/uart.h"
- #include "string.h"
- #include "driver/gpio.h"
- static const int RX_BUF_SIZE = 1024 ;
- #define TXD_PIN (GPIO_NUM_21)
- #define RXD_PIN (GPIO_NUM_20)
- #define 确定 1
- #define 挪威克朗 0
- void uart_init (无效)
- {
- const uart_config_t uart_config = {
- . 波特率 = 115200 ,
- . data_bits = UART_DATA_8_BITS ,
- . 奇偶校验 = UART_PARITY_DISABLE ,
- . 停止位= UART_STOP_BITS_1 ,
- . flow_ctrl = UART_HW_FLOWCTRL_DISABLE ,
- . source_clk = UART_SCLK_DEFAULT ,
- } ;
- // 我们不会使用缓冲区来发送数据。
- uart_driver_install ( UART_NUM_0 , RX_BUF_SIZE * 2 , 0 , 0 , NULL , 0 ) ;
- uart_param_config ( UART_NUM_0 , & uart_config ) ;
- uart_set_pin ( UART_NUM_0 , TXD_PIN , RXD_PIN , UART_PIN_NO_CHANGE , UART_PIN_NO_CHANGE ) ;
- }
- int sendData ( const char *数据)
- {
- static const char * TX_TASK_TAG = "TX_TASK" ;
- esp_log_level_set ( TX_TASK_TAG , ESP_LOG_VERBOSE ) ;
- const int len = strlen (数据);
- const int txBytes = uart_write_bytes ( UART_NUM_0 , data , len ) ;
- ESP_LOGI ( TX_TASK_TAG , "Wrote %d bytes" , txBytes ) ;
- 返回交易字节数;
- }
- static uint8_t receiveData ( uint8_t * data , unsigned int delay_ms )
- {
- uint8_t rxBytes = 0 ;
- static const char * RX_TASK_TAG = "RX_TASK" ;
- esp_log_level_set ( RX_TASK_TAG , ESP_LOG_VERBOSE ) ;
- rxBytes = uart_read_bytes ( UART_NUM_0 , data , RX_BUF_SIZE , delay_ms / portTICK_PERIOD_MS ) ;
- 数据[ rxBytes ] = '
|