单片机
鱼香ROS
代表作:动手学ROS2,动手学机器人学,一行代码安装ROS/ROS2,解决rosdep问题
展开
-
PlatformIO ESP32 CAM 编译出错 huge_app.csv partitions.bin
问题:Source `huge_app.csv’ not found, needed by targetReading CMake configuration...LDF: Library Dependency Finder -> http://bit.ly/configure-pio-ldfLDF Modes: Finder ~ chain, Compatibility ~ softFound 0 compatible librariesScanning dependencies...N原创 2020-10-01 18:51:00 · 2109 阅读 · 0 评论 -
ESP8266_RTOS_SDK3.2 之获取芯片ID(chip id)
在实际的项目当中,我们有的时候需要一个唯一的芯片ID,使得同一份固件可以得到不同的ID,之前用过nodemcu的固件,里面有一个函数node.chipId(),这个函数可以用来获取某一个ESP8266的ID,但是RTOS_3.2版本中我并未找到相关的函数可以调用,就打算自己编写一个加入SDK当中去。接下是代码和方法。原创 2019-07-17 12:47:45 · 6155 阅读 · 1 评论 -
FreeRTOS第三节——任务的创建与删除
1.函数介绍创建方法有三种,删除一种函数描述xTaskCreate()动态的创建一个任务xTaskCreateStatic()使用静态的方法创建一个任务xTaskCreateRestricted()创建一个使用MPU进行限制的任务,相关内存使用动态内存分配xTaskDelete()删除一个任务xTaskCreate()学这个,看源码是很有...原创 2019-06-30 21:40:48 · 856 阅读 · 1 评论 -
FreeRTOS第五节——中断配置和临界段
一、中断介绍我所使用的是的STM32F407内核是Cortex-M4内核,支持的中断有240个IRQ(中断请求)、1个是不可屏蔽的中断(NMI)、STM32F407内核是Cortex-M4处理器、1个是Systick(滴答定时器)定时器中断和多个系统异常。1.中断优先级中断是有优先级的,有优先级就会可能被打断,被打断就会出现中断嵌套的现象。中断优先级位数支持8位,但是芯片的生产厂家为了精简,...原创 2019-07-04 01:34:41 · 1128 阅读 · 0 评论 -
FreeRTOS第二节——了解FreeRTOS的任务
1.FreeRTOS任务特点FreeRTOS的任务使用是比较简单的,任务的数量是没有限制的,可以设置优先级,支持抢占,每个任务都有一个堆栈,用来保存任务的数据,任务多的话,内存的心态就会崩溃,如果抢占要考虑重新进入的问题。2.为什么任务需要优先级和堆栈首先什么是优先级,优先级呢就像是VIP,谁的级别高谁就牛,而且越高越牛,所以在FreeRTOS中最LOW的就是0级任务,空闲任务就是0级的。我...原创 2019-06-27 22:48:53 · 617 阅读 · 0 评论 -
FreeRTOS第一节——FreeRTOSConfig配置文件介绍
1.条件编译,系统时钟之前工程移植的时候这里会报错,原因是在这个条件编译上,之前是因为是ICCARM这个东西不是当前的keil平台,修改一下条件编译,主要是添加__CC_ARM和__GNUC__#if defined(__ICCARM__) || defined(__CC_ARM) || defined(__GNUC__) #include <stdint.h> extern ...原创 2019-06-27 20:38:53 · 1649 阅读 · 0 评论 -
ESP8266_RTOSv3.X第一弹——GPIO的使用和代码讲解
一、GPIO介绍IO数量及功能关于esp8266的板子上的引脚,是这样子的,ESP芯片一共33个个引脚,其中包括电源,使能引脚、深度睡眠唤醒引脚、SPI引脚以及连接晶振和作为烧写Flash的引脚。所谓的GPIO(General-purpose input/output)引脚一共有17个,esp8266的SDK把其放进了一个枚举类型里。源码如下:typedef enum { GPI...原创 2019-07-03 01:23:06 · 3895 阅读 · 4 评论 -
FreeRTOS第四节——任务的挂起与恢复
1、函数介绍函数描述xTaskSuspend()挂起一个任务xTaskResume()恢复一个任务的运行xTaskResumeFromISR()恢复一个任务的运行从中断服务函数中我们要知道,当我们对一个任务进行挂起和恢复的时候,任务的数据是不会被删除的,方便应用程序接着操作之前的数据上下文继续运行。1.xTaskSuspend()我们来简单看一下挂...原创 2019-07-02 00:32:35 · 3071 阅读 · 4 评论 -
IIC通讯笔记及硬件bug调试方法
一二百行代码产生的错误,不知不觉的改到了现在,不得不说,硬件的bug确实比软件难改,会让人怀疑是硬件问题还是软件问题。为了改AT24C02的错误,花了半小时复习了下,主要内容在下面。现在先说以下这次bug造成的原因,以及以后大家在学习51单片机中遇到错误该怎们办。 这次bug的形成原因是细节上的错误。 第一个比较明显的:就是终止信号的时候 应该是SCL在高电平的时候收到一个SDA的上升沿,这个原创 2018-01-23 02:00:57 · 2136 阅读 · 0 评论 -
ESP8266 HTTP请求
ESP8266 HTTP请求具体代码与坑 1. AT 测试连接 2. AT+CWMODE=3 更改模式 3. AT+CWJAP=”waf2”,”abc11409” 连接wifi 4. AT+CIPSTART=”TCP”,”120.79.0.116”,80 进行网址请求连接 5. AT+CIPSEND=30 要发送的字节数 6. GET /esp原创 2018-01-29 23:45:00 · 3364 阅读 · 0 评论 -
STM32事件与中断
事件是中断的触发源,开放了对应的中断屏蔽位,则事件可以触发相应的中断。事件还是其它一些操作的触发源,比如DMA,还有TIM中影子寄存器的传递与更新;而中断是不能触发这些操作的,所以要把事件与中断区分开。 当你只要产生中断而不想触发其它操作时,就可以用事件屏蔽寄存器实现。 在STM32中,中断与事件不是等价的,一个中断肯定对应一个事件,但一个事件不一定对应一个中断。中断只是一个中文简称.转载 2018-01-30 02:04:42 · 3992 阅读 · 0 评论 -
STM32F4串口通信(一)
常用的串口相关的寄存器 USART_SR 状态寄存器 发送或接受完成 5 读取数据空不空 RXNE 6 发送完成寄存器 库函数中:USART_GetFlagStatue(UASART_TypeDef* USARTx , USART_FLAG) 这个用来获取串口的状态USART_DR 数据寄存器 发送或者接受数据的地方 0-8 就是数据值的存储地方 U原创 2018-01-29 23:35:40 · 7940 阅读 · 0 评论 -
STM32F4时钟(一)
花了近一个小时的时间,终于把32的时钟树图过了一遍,话不多说,先总结,再详细展开。时钟系统是什么,就像是人的脉搏一样,主要理解以下的几个概念。RC震荡源:即RC电路,全称Resistance-Capacitance Circuits。一个 相移电路(RC电路)或称 RC滤波器、 RC网络, 是一个包含利用电压源、电流源驱使电阻器、电容器运作的电路。有RC串联电路,RC并联电路和RC串并联电路...原创 2018-01-20 13:08:20 · 5050 阅读 · 0 评论 -
STM32F4时钟(二)
一、综述这次主要记录自己对RCC寄存器的笔记。RCC 时钟控制寄存器 即 Reset and clock control大概算了算,大约有30多个RCC相关的寄存器。包含了从F42,F405等等。下面一个个讲解。二、RCC_CRRCC_CR全称 RCC clock control register RCC时钟控制寄存器,既然是时钟控制寄存器当然是用来控制时钟的。这是一个32位的寄存器。原创 2018-01-20 14:58:08 · 1098 阅读 · 0 评论 -
STM32外部中断配置步骤
1.使能SYSCFG时钟 系统配置时钟 RCC_APB2PeriphClockCmd(RCC_APB2Periph_SYSCFG,ENABLE) 2.初始化IO口为输入 GPIO_INIT 3.设置IO口与中断线之间的关系 所谓IO口与中短线 f4中有16个IO中断线,PXn 连接的是 EXITn的中断线 比如现在我要想把 PF9的中断线进行连接,只可以连接EXIT9这个中断原创 2018-01-31 21:37:42 · 5205 阅读 · 0 评论