VSCode+CubeMX开发STM32笔记-Uart串口使用
使用VSCode+CubeMx开发STM32,这里介绍Uart串口的基本使用;
1.建立工程1.1 创建项目文件从已有的仓库中创建一个工程led:
1git clone https://github.com/makerinchina-iot/vscode_stm32cubemx_hello.git uart
使用VSCode打开工程后,需要更改如下名字:
文件夹根目录下CMakeLists.txt 文件中修改工程名字为uart:
1set(CMAKE_PROJECT_NAME uart)
stm32cubemx配置文件更改为 uart.ioc ,并更改以下文件名:
1234... ProjectManager.ProjectFileName=uart.ioc ProjectManager.ProjectName=uart...
1.2 引脚配置使用STM32CubeMx打开ioc配置文件,然后配置对应的串口引脚;
对于MonkeyPi-STM32G070RB-V1版本,板载usb转串口连接的的是uart1,因此配置如引脚:
对于MonkeyPi-STM3 ...
VSCode+CubeMX开发STM32笔记-LED灯
使用VSCode+CubeMx开发STM32的LED灯程序;
1.建立工程从已有的仓库中创建一个工程led:
1git clone https://github.com/makerinchina-iot/vscode_stm32cubemx_hello.git led
使用VSCode打开工程后,需要更改如下名字:
文件夹根目录下CMakeLists.txt 文件中修改工程名字为led:
1set(CMAKE_PROJECT_NAME led)
stm32cubemx配置文件更改为 led.ioc ,并更改以下文件名:
1234... ProjectManager.ProjectFileName=led.ioc ProjectManager.ProjectName=led...
2. 编写代码
使用STM32CubeMx打开led.ioc配置文件,然后设置LED连接引脚为OutPut输出模式,然后生成工程;
在main中添加如下led测试代码:
123456789101112131415... /* USER CODE BEGIN WHILE */ w ...
VSCode+CubeMX开发STM32笔记-开发环境建立
本文介绍使用VSCode和CubeMX工具来开发STM32;
1. 准备
安装VSCode插件
首先需要在VSCode中安装STM32Cube插件:
安装CubeMX软件
2. 创建工程2.1 CubeMX创建一个工程打开STM32CubeMX创建一个基本的示例工程,这里以STM32G070型号为例,基本设置如下:
在 SYS 选项中勾选 Serial Wire 用于SWD接口下载和调试:
系统时钟配置,这里选择内部时钟,配置为64MHz:
GPIO配置,这里配置PC12为输出IO,用于连接LED:
工程配置,在Project Manager中配置项目名字和生成工程的工具类型为CMake:
然后在 Code Generator中选择如下配置:
最后点击 GENERATE CODE 按钮生成代码,并选择打开文件夹:
3. 添加代码
使用VSCode打开上一步生成的文件夹,在打开后会出现选择配置,这里选择Debug模式:
在接下来会出现如下提示,选择 YES:
等待CMake配置项目完成后即可;
在m ...
STM32G030-Platformio+libopencm3-SPI接口SD卡使用
使用Platformio平台的libopencm3开发框架来开发STM32G030,下面介绍SD卡模块的使用方法。
1 新建项目
从仓库 MonkeyPi-STM32G030-PIO_Libopencm3_example/template_libopencm3 at main · makerinchina-iot/MonkeyPi-STM32G030-PIO_Libopencm3_example 下载一个模版;
更改名字为spisdcard,然后使用VSCode打开该文件夹;
然后更改项目文件platformio.ini的烧写和调试方式,可以选择DAPLink或者串口下载:
1234567891011;;;; //use swdupload_protocol=cmsis-dap;;;; //use custom uart isp; upload_protocol = custom; upload_port = COM22; upload_flags = ; -f ; G0; upload_command = $PYTHONEXE -m stm32loader -p $ ...
在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 ...