STM32G0开发笔记-Platformio+libopencm3-看门狗WDT使用
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为看门狗的使用。
1 新建项目
建立wdt项目
在PIO的Home页面新建项目,项目名称wdt,选择开发板为 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序2.1 看门狗基本使用方法
设置看门狗周期
1iwdg_set_period_ms(600);
比如设置600ms周期;最大为32768ms;
使能看门狗
1iwdg_start();
一般在初始化工作都完成后开始启动看门狗;
在看门狗周期内进行喂狗
1iwdg_reset();
这个函数必须保证在看门狗周期内进行执行,如上面设置周期为600,这个函数就必须在600ms之内调用,如每500ms调用一次;
2.2 使 ...
STM32G0开发笔记-Platformio+libopencm3-串口中断
使用Platformio平台的libopencm3开发框架来开发STM32G0,以下为串口中断的使用。
1 新建项目
建立uart项目
在PIO的Home页面新建项目,项目名称uart,选择开发板为上一次建立的自定义开发板型号 MonkeyPi_STM32_G070RB,开发框架选择libopencm3;
项目建立完成后在src目录下新建main.c主程序文件;
修改下载和调试方式,这里开发板使用的是DAPLink仿真器,因此修改platformio.ini文件如下:
12upload_protocol = cmsis-dapdebug_tool = cmsis-dap
2 编写程序
时钟设置
123456//system clockrcc_clock_setup(&rcc_clock_config[RCC_CLOCK_CONFIG_HSI_PLL_64MHZ]);//uart pinrcc_periph_clock_enable(RCC_USART1);rcc_periph_clock_enable(RCC_GPIOB);
先设置系统时钟为内部PLL生成64MHz ...
STM32G0开发笔记-Platformio+libopencm3-LED灯
使用Platformio平台的libopencm3开发框架来开发STM32G0,下面为LED灯示例。
1 新建项目在PIO的Home页面新建项目,项目名称led,选择开发板为上一次建立的自定义开发板型号 MonkeyPi_STM32_G070RB,开发框架选择libopencm3:
2 LED灯程序在项目文件夹的src目录下新建文件main.c,内容如下:
123456789101112131415161718192021222324252627282930313233343536373839404142/** * @file main.c * @author MakerInChina (makerinchina.cn) * @brief * @version 0.01 * @date 2022-09-04 * * @copyright Copyright (c) 2022 * */#include <libopencm3/stm32/rcc.h>#include <libopencm3/stm32/gpio.h>#define LED_GPI ...
STM32G0开发笔记-Platformio平台下使用libopencm3库
使用Platformio平台的libopencm3开发框架来开发STM32G0,开发环境为VSCode+PIO插件,这里以开发STM32G070RB芯片为例介绍。
1 自定义开发板由于使用的STM32G070RB在pio的libopencm3框架中没有这个型号,因此首先需要先定义一个自定义开发板型号;
安装ST-STM32 platforms在Platformio的platforms中搜索STM32,然后安装ST-STM32 platforms框架,
根据已有的相似型号进行更改配置json文件在PIO安装目录找到对应平台开发板文件夹,比如我这里pio安装在默认的用户目录,则STM32开发板的路径如下:
1C:\Users\userName\.platformio\platforms\ststm32\boards
复制一个相近的板子型号的json配置文件命名为 MonkeyPi_STM32_G070RB.json,更改mcu型号、svd等信息;这里复制修改 nucleo_g071rb 这个json文件,修改后如下:
12345678910111213141516171819202 ...
使用platformio+arduino开发自定义板子STM32G070
使用platformio平台和Arduino框架开发STM32G0,开发环境使用VSCode+PlatformIO插件;
1 自定义boards因为Platformio中没有自己需要的STM32G070RB这个型号的板子,因此需要自己定义一个开发板型号。
1.1 添加一个自定义boards首先这个是STM32系列,因此其boards目录如下(这里pio安装在默认位置):
1C:\Users\userName\.platformio\platforms\ststm32\boards
在这个目录新建一个board描述文件:MonkeyPi_STM32_G070RB.json,因为和STM32G071接近,因此可以复制 nucleo_g071rb.json文件 进行修改,内容如下:
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748{ "build": { "core": "stm32&quo ...
Linux终端美化 oh-my-zsh使用
zsh终端配合oh-my-zsh配置可以非常美观:
1、安装zsh1sudo apt install zsh -y
2、安装oh-my-zsh1sh -c "$(curl -fsSL https://gitee.com/mirrors/oh-my-zsh/raw/master/tools/install.sh)"
3、设置主题
下载主题
1git clone --depth=1 https://gitee.com/romkatv/powerlevel10k.git ${ZSH_CUSTOM:-$HOME/.oh-my-zsh/custom}/themes/powerlevel10k
更改主题
打开 ~/.zshrc 文件,然后设置主题:
1ZSH_THEME="powerlevel10k/powerlevel10k"
启用
1source ~/.zshrc
然后按照提示进行配置
4、设置插件
提示插件
1git clone https://gitee.com/makerinch ...
PySide2示例-USB HID测试工具
使用PySide2创建一个简单的USB HID测试工具。
1、建立界面新建项目文件夹 usbhid,然后用VSCode打开并新建ui文件夹,右键使用 New Form 使用QtDesigner建立如下界面:
然后选择菜单 窗体->View Python Code,将代码复制后保存到ui文件夹下 usbhid_ui.py。
2、具体功能实现
显示界面
123456789101112131415161718192021import sysfrom PySide2.QtWidgets import *from PySide2.QtCore import *from PySide2.QtGui import *from ui.usbhid_ui import Ui_MainWindowclass MainWindow(Ui_MainWindow,QMainWindow): def __init__(self): super(MainWindow,self).__init__() self.setupUi(self)if __name__ = ...
PySide2示例-简单的Hex转换工具
使用PySide2库创建一个简单的十六进制文件转换工具。
1、建立界面新建项目文件夹 hextool,然后用VSCode打开并新建ui文件夹,右键使用 New Form 使用QtDesigner建立如下界面: 然后选择菜单 窗体->View Python Code,将代码复制后保存到ui文件夹下 hextool_ui.py。
2、具体功能实现
显示界面
123456789101112131415161718192021import sysfrom PySide2.QtWidgets import *from PySide2.QtCore import *from PySide2.QtGui import *from ui.hextool_ui import Ui_MainWindowclass MainWindow(Ui_MainWindow,QMainWindow): def __init__(self): super(MainWindow,self).__init__() self.setupUi(self)if __name__ = ...
PySide2示例-简单的串口工具
使用PySide2建立简单的串口测试工具。
1、建立界面新建项目文件夹 serialtool,然后用VSCode打开并新建ui文件夹,右键使用 New Form 使用QtDesigner建立如下界面: 然后选择菜单 窗体->View Python Code,将代码复制后保存到ui文件夹下 serial_ui.py。
2、功能逻辑
主文件
添加主文件main.py,然后编写代码调用界面:
1234567891011121314151617181920import sysfrom PySide2.QtWidgets import *from PySide2.QtCore import *from PySide2.QtGui import *from ui.serial_ui import Ui_MainWindowclass MainWindow(Ui_MainWindow, QMainWindow): def __init__(self): super(MainWindow,self).__init__() self.setupUi(sel ...
PySide2入门-设计界面和简单美化
使用QtDesigner设计GUI界面,然后进行简单的美化。
1、设计界面新建项目文件夹pyside_start,并使用VSCode打开,在该项目文件夹下新建ui目录,然后右键New Form,打开QtDesigner工具设计好如下界面: 然后选择菜单 窗体->View Python Code ,点击复制全部,将复制的代码保存在ui文件夹下 main_ui.py。
2、主文件在项目目录下新建main.py文件,调用生成的界面,如下:
12345678910111213141516171819202122232425import sysfrom PySide2.QtWidgets import *from PySide2.QtCore import *from PySide2.QtGui import *from ui.main_ui import Ui_MainWindowclass MainWindow(Ui_MainWindow, QMainWindow): def __init__(self): super(MainWindow, self).__in ...