当前位置: 首页 > news >正文

1688网站特色招聘网站如何做SEO

1688网站特色,招聘网站如何做SEO,网站文字超链接怎么做,免费云电脑前言 在我们学习嵌入式的过程中,uart算是我们用的非常多的一个外设了,我们可以用串口打印信息,也可以用于设备通信,总之串口的作用非常多,我们也非常有必要熟练地去掌握这个外设。 uart的配置 uart的参数配置 uart_…

前言

在我们学习嵌入式的过程中,uart算是我们用的非常多的一个外设了,我们可以用串口打印信息,也可以用于设备通信,总之串口的作用非常多,我们也非常有必要熟练地去掌握这个外设。

uart的配置

uart的参数配置

    uart_config_t uart_config = {.baud_rate = ECHO_UART_BAUD_RATE, //波特率.data_bits = UART_DATA_8_BITS, //数据传输大小.parity    = UART_PARITY_DISABLE,//奇偶校验.stop_bits = UART_STOP_BITS_1,//停止位.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,//硬件流.source_clk = UART_SCLK_DEFAULT,};

还是和上一篇我们学习SPI一样,首先需要配置uart的基本参数,像这些参数我们在学习STM32或者其他单片机的时候应该都比较熟悉了,只需要根据我们项目的需求进行配置就OK了。

esp_err_t uart_param_config(uart_port_t uart_num, const uart_config_t *uart_config)

配置完成之后使用上面的函数进行设置即可。

安装 uart驱动

esp_err_t uart_driver_install(uart_port_t uart_num, int rx_buffer_size, int tx_buffer_size, int event_queue_size, QueueHandle_t *uart_queue, int intr_alloc_flags)

uart_driver_install 是ESP-IDF中用于安装UART驱动程序的函数,它为UART驱动程序分配所需的内部资源,包括环形缓冲区和事件队列。以下是该函数的作用和使用方法:

作用

  • 分配UART驱动程序所需的内部资源,包括Tx(发送)和Rx(接收)的环形缓冲区。
  • 创建一个事件队列,用于处理UART事件,如数据接收、缓冲区溢出等。
  • 允许UART驱动程序使用中断,提高数据传输的效率和响应性。

使用方法

使用uart_driver_install函数时,需要指定以下参数:

  1. uart_num:指定UART端口号,例如UART_NUM_1UART_NUM_2
  2. rx_buffer_size:接收环形缓冲区的大小。
  3. tx_buffer_size:发送环形缓冲区的大小。
  4. event_queue_size:事件队列的大小,用于存储UART事件。
  5. uart_queue:指向队列句柄的指针,用于存储UART事件。
  6. flags:标志位,用于指定是否需要中断等。

这里我们可以使用他的uart事件,这样更加方便我们编程,这里我使用读取超时的(timeout_flag)的标志,这个就类似触发我们STM32中的空闲接收,代表数据已经接收完成我们可以进行处理。

ESP_ERROR_CHECK(uart_driver_install(ECHO_UART_PORT_NUM, BUF_SIZE * 2, BUF_SIZE * 2, 20, &uart1_queue, intr_alloc_flags));

引脚配置

esp_err_t uart_set_pin(uart_port_t uart_num, int tx_io_num, int rx_io_num, int rts_io_num, int cts_io_num)

最后使用上面的函数配置我们的引脚即可。

完整代码

#define TAG "tx_usart"#define ECHO_TEST_TXD (21)#define ECHO_TEST_RXD (22)#define ECHO_UART_PORT_NUM      (1)#define ECHO_UART_BAUD_RATE     (115200)#define BUF_SIZE (1024)static QueueHandle_t uart1_queue;void tx_usart_init(void){uart_config_t uart_config = {.baud_rate = ECHO_UART_BAUD_RATE,.data_bits = UART_DATA_8_BITS,.parity    = UART_PARITY_DISABLE,.stop_bits = UART_STOP_BITS_1,.flow_ctrl = UART_HW_FLOWCTRL_DISABLE,.source_clk = UART_SCLK_DEFAULT,};int intr_alloc_flags = 0;uint8_t timer_cnt = 0;ESP_ERROR_CHECK(uart_driver_install(ECHO_UART_PORT_NUM, BUF_SIZE * 2, BUF_SIZE * 2, 20, &uart1_queue, intr_alloc_flags));ESP_ERROR_CHECK(uart_param_config(ECHO_UART_PORT_NUM, &uart_config));ESP_ERROR_CHECK(uart_set_pin(ECHO_UART_PORT_NUM, ECHO_TEST_TXD, ECHO_TEST_RXD, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE));uart_event_t event;// Configure a temporary buffer for the incoming datauint8_t *data = (uint8_t *) malloc(BUF_SIZE);while (1) {// Read data from the UART//Waiting for UART event.if(xQueueReceive(uart1_queue, (void * )&event, (TickType_t)0)) {/*以此判断一帧数据传输完成*/if(event.timeout_flag){ESP_LOGI(TAG,"Recv TimeOUT");}xQueueReset(uart1_queue);}int len = uart_read_bytes(ECHO_UART_PORT_NUM, data, (BUF_SIZE - 1), 0);// Write data back to the UARTuart_write_bytes(ECHO_UART_PORT_NUM, (const char *) data, len);vTaskDelay(10 / portTICK_PERIOD_MS);}}
http://www.yayakq.cn/news/844739/

相关文章:

  • 成都建设网站建设WordPress封面生成
  • wordpress来建站页面设计培训
  • 鸣蝉网站建设公司网站优化主旨
  • 坪地网站制作公司的网站建设与维护
  • 济南建设网站企业报价网站策划工具
  • 网站后台管理系统模板网站做下CDN防护
  • 小制作小发明手工五年级宁波企业网站排名优化
  • 长春建站公司模板个人网站怎么做
  • 网站地图的重要性网站建设公司软文
  • 网站域名可以更换吗管理系统怎么做
  • 深圳 网站定制网站建设有哪些板块
  • 网页设计与网站建设在线考试1做网站需要招聘内容范本
  • 公司网站建设需要资质wordpress模板教程
  • 晏阳初乡村建设网站设计网店首页
  • 影视网站策划书莆田网站制作价格
  • 网站开发会遇到的问题个人备案的网站做企业内容
  • 安徽做网站公司哪家好h5网站开发用什么软件制作
  • 山西大同网站建设江西省南昌市建筑工程网
  • 如何查询网站后台地址网站介绍怎么写
  • 初学网站开发住房和城乡建设部服务门户
  • 网站 解决负载可信网站认证服务中心
  • 一诺互联 网站建设网站策划方案范文
  • 手机 网站 开发做网站还是做微信公众号
  • 深圳服务网站入口上海建设网站哪家好
  • 广西冶金建设公司网站长沙企业网站seo
  • 湘潭网站建设企业东莞网站开发建设
  • 深圳企业网站建设维护安徽泗县建设银行网站
  • 网站蜘蛛爬行统计系统整人做我女朋友网站
  • 千海网站建设 小程序大连网站制作网站
  • 长春网站排名优化费用劳务工程信息平台