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

桂林市生活网官方网站房地产推广策略

桂林市生活网官方网站,房地产推广策略,建设企业网站官网u盾,江桥做网站对于任何一款芯片#xff0c;GPIO接口是其最基本的组成部分#xff0c;也是一款芯片入门的最基本操作#xff0c;下面论述下 关于esp32开发版的GPIO操作#xff0c;本文中重点讲解下 关于如何创建eclipse工程#xff0c;并通过eclipse下载到esp32中去#xff08;本文的工…对于任何一款芯片GPIO接口是其最基本的组成部分也是一款芯片入门的最基本操作下面论述下 关于esp32开发版的GPIO操作本文中重点讲解下 关于如何创建eclipse工程并通过eclipse下载到esp32中去本文的工程文件在esp-idf/example/periheral文件夹中gpio工程这里就不再详细论述了可以看前面的文章本文重点讲解工程源码现在讲代码分块粘贴如下并进行讲解。 本次操作比较简单大致可以分为以下几个部分 PART1; 定义gpio口寄存器及一个空的xQueueHandle类型的返回信号量。 #define GPIO_OUTPUT_IO_0 18 #define GPIO_OUTPUT_IO_1 19 #define GPIO_OUTPUT_PIN_SEL ((1GPIO_OUTPUT_IO_0) | (1GPIO_OUTPUT_IO_1)//配置gpioout位寄存器#define GPIO_INPUT_IO_0 4 #define GPIO_INPUT_IO_1 5 #define GPIO_INPUT_PIN_SEL ((1GPIO_INPUT_IO_0) | (1GPIO_INPUT_IO_1)) #define ESP_INTR_FLAG_DEFAULT 0  //定义默认的中断标志为0static xQueueHandle gpio_evt_queue NULL;     //定义一个队列返回变量   PART2 编写中断处理函数及信号输出任务 static void IRAM_ATTR gpio_isr_handler(void* arg) {uint32_t gpio_num (uint32_t) arg;xQueueSendFromISR(gpio_evt_queue, gpio_num, NULL);//xQueueSendFromISR是发生消息插入到队列的后面将gpio的io口数传递到队列中关于xQueueSendFromISR函数的相关知识可以自己查询API手册本文最后也有相关讲解 }static void gpio_task_example(void* arg) {uint32_t io_num;for(;;) {if(xQueueReceive(gpio_evt_queue, io_num, portMAX_DELAY)) {//接受gpio队列并在读取完后删除队列printf(GPIO[%d] intr, val: %d\n, io_num, gpio_get_level(io_num));//将GPIO的信息打印输出}} }       PART3 应用主程序   1 void app_main()2 {3 gpio_config_t io_conf;4 //定义一个gpio_config类型的结构体下面的都算对其进行的配置5 //disable interrupt6 io_conf.intr_type GPIO_PIN_INTR_DISABLE;7 //set as output mode8 io_conf.mode GPIO_MODE_OUTPUT;9 //bit mask of the pins that you want to set,e.g.GPIO18/19 10 io_conf.pin_bit_mask GPIO_OUTPUT_PIN_SEL; 11 //disable pull-down mode 12 io_conf.pull_down_en 0; 13 //disable pull-up mode 14 io_conf.pull_up_en 0; 15 //configure GPIO with the given settings 16 gpio_config(io_conf); 17 18 //interrupt of rising edge 19 io_conf.intr_type GPIO_PIN_INTR_POSEDGE; 20 //bit mask of the pins, use GPIO4/5 here 21 io_conf.pin_bit_mask GPIO_INPUT_PIN_SEL; 22 //set as input mode 23 io_conf.mode GPIO_MODE_INPUT; 24 //enable pull-up mode 25 io_conf.pull_up_en 1; 26 gpio_config(io_conf); 27 28 //change gpio intrrupt type for one pin 29 gpio_set_intr_type(GPIO_INPUT_IO_0, GPIO_INTR_ANYEDGE); 30 31 //create a queue to handle gpio event from isr 32 gpio_evt_queue xQueueCreate(10, sizeof(uint32_t)); 33 //start gpio task 34 xTaskCreate(gpio_task_example, gpio_task_example, 2048, NULL, 10, NULL); 35 // 36 //install gpio isr service 37 gpio_install_isr_service(ESP_INTR_FLAG_DEFAULT); 38 //hook isr handler for specific gpio pin 39 gpio_isr_handler_add(GPIO_INPUT_IO_0, gpio_isr_handler, (void*) GPIO_INPUT_IO_0); 40 //hook isr handler for specific gpio pin 41 gpio_isr_handler_add(GPIO_INPUT_IO_1, gpio_isr_handler, (void*) GPIO_INPUT_IO_1); 42 43 //remove isr handler for gpio number. 44 gpio_isr_handler_remove(GPIO_INPUT_IO_0); 45 //hook isr handler for specific gpio pin again 46 gpio_isr_handler_add(GPIO_INPUT_IO_0, gpio_isr_handler, (void*) GPIO_INPUT_IO_0); 47 48 int cnt 0; 49 while(1) { 50 printf(cnt: %d\n, cnt); 51 vTaskDelay(1000 / portTICK_RATE_MS); 52 gpio_set_level(GPIO_OUTPUT_IO_0, cnt % 2); 53 gpio_set_level(GPIO_OUTPUT_IO_1, cnt % 2); 54 } 55 }  app_main中第三行申明gpio配置的结构体实例然后在其后对gpio的结构体进行配置然后开启一个gpio_task_example的任务处理GPIO4或者GPIO5中断发来的消息这里用到FreeRTOS操作系统的消息队列功能实现中断函数与用户任务之间的消息传递。 在44,46行中调用函数给 GPIO4和GPIO5管脚添加中断处理函数并在最后的while循环中每隔1s切换一次GPIO18、GPIO19的电平值       实验现象     对于本例子的实验例子实验操作是将程序烧写到esp32中后将GPIO18-GPIO4,GPIO19-GPIO5—表示连接然后打开minicom任意串口调试软件可以看到每隔一秒gpio输出一次信息。由于app_main中第29行修改了GPIO_INPUT_IO_0为GPIO_INTR_ANYEDGE即GPIO18的中断方式所以GPIO18的中断会比19多一次。实验输出如下图所示             小TIPS    对于不知道的变量想要找到其定义选中想要查询的变量按下F3即可自动跳转到其定义处同理选中按F4可以看到此变量或函数被谁调用了。   相关知识 1、esp32函数APIgpio口的函数API 2、FreeRTOS函数API 以下截图来自正点原子FreeRTOS开发手册                转载于:https://www.cnblogs.com/noticeable/p/7458292.html
http://www.huolong8.cn/news/80551/

相关文章:

  • 新营销方式有哪些东莞网站seo公司
  • 网站开发中涉及的侵权行为辽宁建设工程信息网评标专家入库
  • 企业网站 的网络营销方法有长春网站制作优势吉网传媒
  • 大丰做网站哪家好郴州网站设计较好的公司
  • 做软件推广网站怎么赚钱wordpress作者排行
  • 山东大型网站建设郑州小程序开发公司排名
  • 医疗网站建设网站网站游戏网站怎么做
  • 企业网站的建设内容wordpress的中文插件
  • 杭州模板做网站鹿泉网络推广
  • 河西区做网站的公司土特产网站模板 织梦
  • 山东住房和城乡建设厅网站登陆绵阳的网站建设
  • 做微网站需要什么国内优秀企业网站设计
  • 微信公众号注册流程如何建设和优化网站
  • 网站建设美工怎么做流量网站
  • 网站自动识别移动终端顺义做网站公司
  • 电子商务网站建设的规划方案邮箱官方网站注册
  • 网站模版购买发布网页版传奇世界什么组合最好
  • 西安英文旅游网站建设建设项目环境影响网站
  • 万州房产网站建设怎样自己建设一个网站
  • 德钦网站建设资源搜索器
  • 做网站后期需要什么费用中国建设银行积分商城网站
  • 资讯类网站模板asp欧美跨境电商平台有哪些
  • 江西网站设计电话网站页面设计制作
  • 班级网站建设心得体会范文免费的排版软件
  • 网站建设企业合作邀请函广州10大网站开发
  • 浏览器怎么打开网站服务器连接互联网舆情信息
  • 百度网盘做存储网站wordpress阅读全文插件
  • 建设网站用外包模板可以上线吗华为网站建设目标
  • 凡客网站登陆有效的网络编址方案有
  • 电商网站创建的几个阶段外贸推广排行榜