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

电子商务网站规划与建设试题微商怎么做网站

电子商务网站规划与建设试题,微商怎么做网站,seo需要会什么,html毕业设计题目大全ESP32-S3 IDF USART详解 USART简介 USART是一种串行通信协议#xff0c;广泛应用于微控制器和计算机之间的通信。USART支持异步和同步模式#xff0c;因此它可以在没有时钟信号的情况下#xff08;异步模式#xff09;或有时钟信号的情况下#xff08;同步模式#xff…ESP32-S3 IDF USART详解 USART简介 USART是一种串行通信协议广泛应用于微控制器和计算机之间的通信。USART支持异步和同步模式因此它可以在没有时钟信号的情况下异步模式或有时钟信号的情况下同步模式进行通信。 ESP32-S3的USART ESP32-S3有两个全功能的USART通道USART0和USART1USART2支持异步通信RS232 和 RS485和 IrDA通信速率可达到 5 Mbps。 UART 基本架构图 UART 模块工作在两个时钟域APB_CLK 时钟域和 Core 时钟域。UART Core 有三个时钟源80-MHz APB_CLK、RC_FAST_CLK 以及晶振时钟 XTAL_CLK 可以通过配置 UART_SCLK_SEL 来选择时钟源。分频器用于对时钟源进行分频然后产生时钟信号来驱动 UARTCore 模块。 更加详细的介绍可以去看看官方的文档 ESP32S3官方文档 需要注意一点 ESP32-S3的USART引脚映射是可配置的这是因为ESP32-S3使用了一个称为GPIO矩阵的特性。GPIO矩阵是ESP32-S3硬件的一部分它允许将内部信号路由到任何GPIO引脚。这意味着我们可以将USART的发送TX和接收RX信号连接到你选择的任何可用GPIO引脚。 ESP32-S3 UART的默认引脚 发送TX接收RXUART0IO43IO44UART1IO17 / 任意IOIO18 / 任意IOUART2任意IO任意IO printf()函数 在ESP-IDF中printf()函数默认使用的是USART0。这是因为在ESP32-S3的启动代码中USART0被初始化为默认的调试控制台。因此当我们在代码中使用printf()函数来打印信息时这些信息将会被发送到USART0并且可以通过串行接口如USB转串口适配器在计算机的串行监视器上看到。 使用ESP-IDF配置USART 在ESP32-S3上使用USART的基本步骤 设置 UART 参数、分配引脚可选不配置则使用默认引脚初始化UART安装 UART 驱动收发数据使用中断卸载 UART 中断驱动释放资源当 UART 不再使用时 #include driver/uart.hvoid app_main(void) {// -------------1. 配置USART选项-----------------------uart_config_t uart_config {.baud_rate 115200, // 波特率.data_bits UART_DATA_8_BITS, // 数据位.parity UART_PARITY_DISABLE, // 奇偶校验.stop_bits UART_STOP_BITS_1, // 停止位.flow_ctrl UART_HW_FLOWCTRL_DISABLE // 流控};// --------------2. 初始化USART------------------------// UART_NUM_1UART端口号// uart_config指向uart_config_t结构体的指针uart_param_config(UART_NUM_1, uart_config);// --------------3. 安装驱动程序------------------------// UART_NUM_1UART端口号// 1024 * 2接收缓冲区大小// 0发送缓冲区大小// 0队列长度// NULL队列句柄如果不使用队列可以设置为NULL// 0中断分配标志通常设置为0uart_driver_install(UART_NUM_1, 1024 * 2, 0, 0, NULL, 0);// 4.---------------4. 发送数据--------------------------// UART_NUM_1UART端口号// Hello, world!要发送的数据// 13要发送的数据的长度uart_write_bytes(UART_NUM_1, Hello, world!, 13);// ------------------5. 读取数据-----------------------uint8_t data[128]; // 数据缓冲区int length 0; // 读取的数据长度// UART_NUM_1UART端口号// data数据缓冲区// sizeof(data)要读取的最大数据长度// 1000 / portTICK_RATE_MS读取超时时间以RTOS tick为单位length uart_read_bytes(UART_NUM_1, data, sizeof(data), 1000 / portTICK_RATE_MS);if (length 0) {// 如果读取到数据处理数据// ...}}前面提到过ESP32-S3的USART引脚映射是可配置的所以我们可以使用uart_set_pin()来自定义TX和RX #include driver/uart.hvoid app_main(void) {// 设置UART1的TX引脚为GPIO10RX引脚为GPIO9uart_set_pin(UART_NUM_1, 10, 9, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE); } 这里uart_set_pin()函数的最后两个参数是RTS请求发送和CTS清除发送我没有使用所以将它们设置为UART_PIN_NO_CHANGE USART实验 串口UART_NUM_1接收数据并分别在串口UART_NUM_0和串口UART_NUM_1返回 这次我们依旧使用面向对象的方法来编写驱动驱动API接口参考Arduino的格式 USART.h /*** file USART.h* author 宁子希 (1589326497qq.com)* brief 串口初始化类* version 0.1* date 2024-03-12* * copyright Copyright (c) 2024* */#ifndef _USART_H_ #define _USART_H_#include string.h #include freertos/FreeRTOS.h #include freertos/task.h #include driver/uart.h #include driver/uart_select.h #include driver/gpio.h#ifdef __cplusplusextern C { #endifclass Uart { public:// 构造函数接收UART端口号和TX、RX引脚作为参数Uart(uart_port_t uart_num, int tx_pin, int rx_pin);// 发送数据接收一个字符数组和长度作为参数void write(const char* data, int len);// 接收数据接收一个字符数组和长度作为参数返回实际接收的长度int read(uint8_t* buf, int len);private:uart_port_t _uart_num; // UART端口号int _tx_pin; // TX引脚int _rx_pin; // RX引脚 };#ifdef __cplusplus} #endif#endifUSART.cpp /*** file USART.cpp* author 宁子希 (1589326497qq.com)* brief 串口初始化类* version 0.1* date 2024-03-12* * copyright Copyright (c) 2024* */ #include USART.h// 构造函数 Uart::Uart(uart_port_t uart_num, int tx_pin, int rx_pin): _uart_num(uart_num), _tx_pin(tx_pin), _rx_pin(rx_pin) {// 配置UART参数uart_config_t uart_config {.baud_rate 115200, // 波特率.data_bits UART_DATA_8_BITS, // 数据位.parity UART_PARITY_DISABLE, // 奇偶校验.stop_bits UART_STOP_BITS_1, // 停止位.flow_ctrl UART_HW_FLOWCTRL_DISABLE, // 流控制};// 配置UART参数uart_param_config(uart_num, uart_config);// 设置UART引脚// 设置UART的TX和RX引脚uart_set_pin(uart_num, tx_pin, rx_pin, UART_PIN_NO_CHANGE, UART_PIN_NO_CHANGE);// 安装UART驱动程序// 安装UART驱动程序uart_driver_install(uart_num, 1024 * 2, 0, 0, NULL, 0); }// 发送数据 void Uart::write(const char* data, int len) {// 调用ESP-IDF库函数来发送数据uart_write_bytes(_uart_num, data, len); }// 接收数据 int Uart::read(uint8_t* buf, int len) {// 调用ESP-IDF库函数来接收数据return uart_read_bytes(_uart_num, buf, len, 1000 / portTICK_PERIOD_MS); }main.cpp /*** file main.cpp* author 宁子希 (1589326497qq.com)* brief 串口通信实验* version 0.1* date 2024-03-13* * copyright Copyright (c) 2024* */#include iostream #include string #include USART.h using namespace std;extern C void app_main(void){// 创建一个Uart对象使用UART_NUM_1 TX:8 RX:9Uart uart1(UART_NUM_1, 8, 9);// 发送数据uart1.write(Hello, ESP32!, 13);while(true){// 接收数据uint8_t buf[128];int len uart1.read(buf, sizeof(buf));// 处理接收到的数据if (len 0) {// 假设我们只是简单地将接收到的数据打印出来for (int i 0; i len; i) {printf(%c, buf[i]);}printf(\n);// 然后我们可以再次发送处理后的数据uart1.write((const char*)buf, len);}} }总结 更加详细的内容可以去看看官方的资料 ESP32S3 USART 官方手册
http://www.w-s-a.com/news/989281/

相关文章:

  • 中山企业做网站昆明做网站价格
  • wordpress 新网站 代码网站可以做系统还原吗
  • 百度给做网站公司餐饮设计装饰公司
  • 专门卖医疗器械的网站网站建设方案一份
  • 吉林省建设安全监督站网站wordpress 4.7.5下载
  • 网页制作视频的网站建设营销策划公司
  • 玉雕网站建设八点品牌设计公司招聘
  • 服务器可以自己的网站吗flash 网站 源码
  • 湖南做网站 搜搜磐石网络网站注册收入
  • 北京软件网站开发装修设计培训机构
  • 哪个网站能帮助做路书网站建设的技巧
  • 上海网站备案在哪里在国外怎么做网站
  • 做网站得花多钱乡村振兴网站建设
  • 站设计培训课程wordpress自动回复
  • 上海闵行区 网站建设永久免费crm软件下载
  • 天津营销网站建设公司排名台州网站排名公司
  • 环保网站 怎么做物流网站的功能与特色
  • 网站多久才会被收录服务器租用泰海
  • 电商网站建设合同模板临汾推广型网站建设
  • 天猫商务网站建设目的长春网站设计
  • 公司网站建设会议纪要昆山高端网站建设机构
  • 做消费网站流程深圳网站设计价格
  • 做电影网站怎么接广告中国最新军事新闻视频
  • 网站推广设计做哪些设置自动删除的wordpress
  • 东莞东坑网站设计专业网站制作设
  • 网站怎么做现场直播视频成都科技网站建设找
  • 个人网页设计步骤网站没有内容 能做优化吗
  • 专业网站建设公司招聘网站排行榜
  • 网站建设规范方法企业解决方案架构
  • ae做网站导航wordpress门户