ESP32-C3
ESP32深度集合FreeRTOS---参考示例程序
-
GPIO示例代码:
examples/peripherals/gpio/generic_gpio---gpio功能
-
LED示例代码:
examples/peripherals/rmt/led_strip
-
串口示例代码:
examples/peripherals/uart/uart_echo
-
串口示例代码:
examples/peripherals/uart/uart_async_rxtxtasks
-
蓝牙示例代码:
examples/bluetooth/bluedroid/ble/gatt_server
-
WIFI示例代码:
examples/wifi/getting_started
ESP32和STM32最大的区别是:
支持2.4GHz Wi-Fi和低功耗蓝牙
ESP32是高性能32位RISC-V单核处理器--->推断是使用32位RISC-V指令集
它是国产芯片由上海乐鑫公司开发。
40nm工艺,射频性能,所有的无线模拟电路都叫射频电路。
指令集
8051单片机可以直接通过赋值方式拉高拉低电平---8051指令集,8位的指令集---指的是MCU里面的寄存器是8位的寄存器。---主要用来运算的---在数字电路里面通过D触发器实现的。
电脑的CPU64位指的是---cpu用来运算的寄存器的位宽是64位---每个寄存器是用64个D触发器组成---每个D触发器是由46个晶体管组成---晶体管越多功耗越高。D触发器的特点是---只有在时钟的上升沿的时候才会更新D触发器保存的那一位。
8051---复杂指令集---表示每条指令的长度是不定长的,如下图
interCPU---复杂指令集
stm32f103---32位的arm指令集---具体是cortex-m3---精简指令集(RISC)---每一条指令都是定长的4个字节---32/8,如下图
工具链:
keil:C语言编译器、链接器、汇编器、调试器、烧写器
新的芯片要做的事情:
第一步、首先查看是什么指令集
第二步、再看其使用的工具链
交叉编译:是在一个平台上生成另一个平台可执行代码的过程。比如在电脑上生成可以在stm32芯片上运行的二进制文件。
寄存器:
MCU寄存器:是用来运算的寄存器---它没有地址一说
flash:stm32上配置的寄存器指的是flash中的寄存器---比如flash下的sram下的gpio的内存映射寄存器(本质是配置的内存)。----指针指的是内存的某个地址。
esp32开发环境
gcc的risc-v版本,烧写工具:openocd
esp32hal库:esp32-idf
使用的开发工具:VSCode + esp-idf插件/命令行