在ESP32上使用MicroPython进行SD卡操作
介绍ESP32上使用MicroPython来进行SD卡的操作。
1 准备1.1 下载SD卡驱动从网站MicroPython - Python for microcontrollers 下载最新的Micropython代码后,将目录:
1..\micropython-1.19\drivers\sdcard
下的sdcard.py 文件保存到ESP32开发板;
1.2 连接SD卡和ESP32开发板将SD卡和ESP32开发板连接好:
ESP32
SD卡
12
MISO
13
MOSI
14
SCK
15
CS
2 SD卡操作2.1 代码12345678910111213141516import machine, sdcard, osfrom machine import SPI, Pinsd = sdcard.SDCard(SPI(1, sck=Pin(14), mosi=Pin(13), miso=Pin(12)), Pin(15))os.mount(sd, '/sd')os.listdir('/sd')f = ope ...
建立ESP32的micropython开发环境
介绍ESP32进行Micropython开发的环境搭建。
参考:在 ESP32 上开始使用 MicroPython —MicroPython中文 1.17 文档
1 准备工作1.1 下载Micropython固件从Micropython网站可以下载ESP32对应的固件:
如果是ESP32开发板不带SPIRAM的,从这里下载固件:MicroPython-download-esp32
如果是带SPIRAM的,从这里下载:MicroPython-download-esp32spiram
1.2 下载安装Thonny从网站:Thonny, Python IDE for beginners 下载Thonny软件并安装;
1.3 ESP32开发板将ESP32开发板连接到电脑,这里使用带USB转串口的开发板:MonkeyPi-Node Wrover开发板,可以直接用USB线连接即可;
2 建立开发环境2.1 下载固件到ESP32开发板打开Thonny软件,从菜单选择 工具->选项->解释器,在选项中选择Micropython(ESP32),端口选择连接的开发板的串口号,然后点击 安装 ...
STM32G0开发笔记-Platformio+libopencm3-FreeRTOS和FreeModbus库使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为FreeRTOS和FreeModbus库使用。
1 新建项目
建立freertos_modbus项目
在PIO的Home页面新建项目,项目名称freertos_modbus,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序直接在之前的FreeRTOS工程上进行添加;
2.1 添加 freeModbus 库从git仓库下载源码: https://github.com/cwalter-at/freemodbus
将下载的源码中的mobus文件夹放置到工程的lib目录下,然后在modbus目录新建library.json文件,内容如下:
12345678910111213141 ...
STM32G0开发笔记-Platformio+libopencm3-FreeRTOS和CLI组件使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为FreeRTOS和CLI组件使用。
1 新建项目
建立freertos_cli项目
在PIO的Home页面新建项目,项目名称freertos_cli,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序直接在之前的文章-FreeRTOS基本使用基础上进行添加,在项目中添加好FreeRTOS源码后,再将FreeRTOS源码中的 FreeRTOS-Plus\Source\FreeRTOS-Plus-CLI 目录放置到项目lib目录下,目录如下:
2.1 串口设置123456789101112131415161718192021222324252627282930313233 ...
STM32G0开发笔记-Platformio+libopencm3-EEPROM M24C02使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为EEPROM M24C02的使用方法。
1 新建项目
建立eeprom项目
在PIO的Home页面新建项目,项目名称eeprom,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序首先从之前的I2C项目中拷贝sw_i2c库文件夹到当前项目的lib目录下:
本次不使用串口打印,直接使用SEGGER rtt打印,因此将SEGGER RTT也放置在lib目录下,便于调试打印:
1234567void log(const char* fmt, ...){ va_list va; va_start(va, fmt); SEGGER_RTT_vprin ...
STM32G0开发笔记-Platformio+libopencm3-NTC温度采集
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下使用ADC进行NTC温度采集。
1 新建项目
建立ntc_temp项目
在PIO的Home页面新建项目,项目名称ntc_temp,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
为了能使用printf的浮点功能,可以加入如下配置:
12build_flags = -Wl,-u,_printf_float
2 编写程序2.1 ADC设置123456789101112131415161718192021void adc_setup(){ rcc_periph_clock_enable(RCC_GPIOA); rcc_periph_clock_enable ...
STM32G0开发笔记-Platformio+libopencm3-多通道ADC与DMA使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为多通道ADC与DMA的使用。
1 新建项目
建立adc_dma项目
在PIO的Home页面新建项目,项目名称adc_dma,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序2.1 ADC 设置这里设置PA0、PA1、PA2、PA3四个引脚为ADC:
1234567891011121314151617181920212223242526272829static void adc_setup(void){ rcc_periph_clock_enable(RCC_ADC); rcc_periph_clock_enable(RCC_GPIOA); gp ...
STM32G0开发笔记-Platformio+libopencm3-ADC使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为ADC的基本使用。
1 新建项目
建立adc项目
在PIO的Home页面新建项目,项目名称adc,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序2.1 ADC配置这里配置PA0引脚为ADC输入,为ADC_IN0通道,设置如下:
123456789101112131415161718192021void adc_setup(){ rcc_periph_clock_enable(RCC_GPIOA); rcc_periph_clock_enable(RCC_ADC); gpio_mode_setup(GPIOA,GPIO_MODE_ANALOG, ...
STM32G0开发笔记-Platformio+libopencm3-I2C接口软件模拟与GXHT30温湿度模块
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下使用软件模拟I2C总线时序,并用它来读取GXHT30温湿度数据。
1 新建项目
建立gxht30项目
在PIO的Home页面新建项目,项目名称gxht30,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 I2C软件模拟2.1 文件结构在lib目录新建 sw_i2c 文件夹,并新建如下文件:
2.2 sw_i2c_port.h 与底层IO读写相关1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162/** ...
STM32G0开发笔记-Platformio+libopencm3-FreeRTOS和队列Queue使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为使用FreeRTOS系统的队列Queue。
1 新建项目
在PIO主页新建项目,框架选择libopencm3,开发板选择 MonkeyPi_STM32_G070RB;
新建完成后在src目录新建主程序文件main.c;
然后更改项目文件platformio.ini的烧写和调试方式:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 添加FreeRTOS库将上一节工程中的FreeRTOS目录直接拷贝到当前工程的lib目录下即可,添加完成后重新打开项目,以便VSCode获取代码索引;
3 在FreeRTOS中使用Queue这里将串口接收的数据存放到队列中,然后在其他任务中可以取出来进行打印显示;
创建队列
1234xQueueHandle uart_queue;//create queue uart_queue = xQueueCreate(16, sizeof(char));
使用 xQueueCreate 接口创建队列,上面为创 ...