- 博客(13)
- 收藏
- 关注
原创 数据库子表、父表、主键、外键的关系和用途
2/,其次,是增加一个从属表. 如果表A删除一条记录时,表B中也随着删除一条相关联的记录,那么外键关系中,表A的主键是表B的外键。这种关系,实际上表B是表A的从属表(即表A是父表),选择对 INSERT 和 UPDATE 强制关系时,如果向表B中插入数据,表A中必须已经存在对应的记录。选择级联删除相关的字段时,删除表A中的一条记录,就会删除对应的表B中的一条记录。1/,删除是如何相互影响的,删除记录受约束的那个是父表,不受约束的那个是子表;子表,父表的定义: 拥有外键的表是子表。
2023-09-18 04:53:13 2201
原创 RT-Thread Studio同时生成hex和bin文件并自动重命名的操作方法
前言RT-Thread Studio编译完项目以后默认输出Bin文件格式,文件名默认为rtthread。需要hex文件格式可以在项目构建配置里将输出格式改为hex。但无法同时输出hex和bin并且自动重命名。操作方法若需要同时生成hex和bin文件,如上图所示的工具设置中,还是将Output file format修改为默认的Raw binary。然后在项目构建配置的构建步骤中,添加构建后步骤命令arm-none-eabi-objcopy -O ihex "rthread.elf" "rthrea
2022-05-24 17:55:33 2553 2
原创 STM32F10X系列 RT-Thread官方库 SPI2和SPI3 频率错误的原因和解决办法
前言STM32F10X SPI1挂接在ABP2时钟总线,SPI2和SPI3挂接在ABP1时钟总线。ABP1速率最大36M,ABP2速率最大72M。如下图所示。SPI2和SPI3速率错误原因RT-Thread基于芯片建立的工程,官方驱动库drv_spi.c中,设置SPI速率程序如下所示。 uint32_t SPI_APB_CLOCK;#if defined(SOC_SERIES_STM32F0) || defined(SOC_SERIES_STM32G0) SPI_APB_CLOCK =
2022-01-06 18:53:51 1234
原创 RT-Thread STM32F1 RTC时钟年月日掉电丢失的解决办法
前言STM32F1系列官方库没有保存年月日的功能,断电上电后会恢复初始值。所以根据RT-Thread官方例程操作后,年月日断电并不能保存。硬件RTC的使用方法1.CubeMX Settings中打开外部晶振并配置时钟源,打开RTC功能2.首先需要打开RT-Thread Settings中RTC的驱动支持,但不要打开软件模拟RTC设备3.drivers/board.h中打开硬件RTC的定义RTC驱动修改修改RTC驱动,实现断电保存年月日功能,这里参考了RT-Tread论坛中帖子的解决方
2022-01-03 23:14:01 2824
原创 RT-Thread系统 STM32 DMA驱动接收数据包被自动拆包的解决办法,实现不定长数据包完整接收
前言使用串口解析协议数据,肯定会使用DMA的空闲中断接收不定长数据,不需要在串行数据中解析协议头,rtthread官方提供的串口驱动支持的DMA空闲中断的接收,但是串口rx_fifo不管多大会存在溢出,由于官方库在数据溢出时,向中间件层推送了数据,导致应用层接收的数据会被拆包,影响协议的解析。开启DMA功能1.使用DMA功能首先需要在RT-Thread Settings中打开DMA驱动支持,并根据接收的数据包最大长度适当增加缓冲区大小,如果超出缓冲区的数据将会覆盖起始数据。2.在board.h中打
2022-01-03 22:46:04 1386
原创 RT-Thread系统 STM32 DAC设备改进,直接调用系统DAC驱动函数设置输出电压
前言RT-Thread系统官方的驱动支持DAC设备比较晚,还不太完善,所以早期的STM32F1等系列基于芯片的工程中并没有DAC设备的驱动,很多人建议直接调用HAL库中的函数操作DAC,但这样操作并不符合RT-Thread的特点,程序风格不统一。改进过程其实在Github的官方包里发现有DAC的驱动,但并没有加入STM32F1的芯片库中。经过稍微修改以后,成功加入到STM32F1基于芯片生成的工程中并完美运行。1.在CubeMX中打开DAC设备2.在RT-Thread Setting中打开DAC
2022-01-03 21:59:51 1612 4
原创 RT-Thread系统 STM32 ADC设备读取到的数据不准或漂移的修复改进
原因STM32 HAL库中有校准功能,即 HAL_ADCEx_Calibration_Start()函数。但RT-Thread系统 ADC设备驱动中并没有调用,这导致了读取到的ADC数值比正常值整体偏大一些。解决方法HAL_ADCEx_Calibration_Start()函数介绍写着必须在HAL_ADC_Stop()后或HAL_ADC_Start()前调用这个校准函数。于是在RT-Thread工程中drivers/drv_adc.c文件中,HAL_ADC_Start()前增加下面两条语句。
2022-01-03 21:14:11 1972 2
原创 Office Word和Excel的工具栏显示不全,只显示文件、绘图和帮助的解决办法
可能是以前安装的某个软件自动注入了插件导致,解决办法是文件–选项–加载项,下面选择COM加载项,点转到,取消勾选NtkoOfficeControlAddin选项,点击确定即可恢复。如果还不行,再试试禁用其他的加载项。...
2021-11-27 20:38:29 7557
原创 RT-Thread Studio中外置SPI Flash和EasyFlash软件包的使用
文章目录1.新建工程2.配置CubeMX Settings,启用SPI33.打开SFUD功能并添加FAL和EasyFlash软件包4.修改FAL接口文件并初始化SFUD和FAL5.调整FAL分区结构6.修改EasyFlash接口文件并初始化Easyflash7.编译下载程序并调试功能1.新建工程打开RT-Thread Studio,文件-新建-RT-Thread项目,选择好芯片型号,我这里用的是STM32F405RG,设置控制台串口并命名工程后点击完成,自动生成工程。2.配置CubeMX Settin
2021-11-19 23:17:17 2562
原创 STM32CubeMX时钟源的选择
使用STM32CubeMX进行时钟源RCC配置的时候,可以选择使用内部时钟或外部时钟。当程序对时钟精度要求较高时,通常使用外部时钟。下拉选框如下图:Disable:禁用外部时钟BYPASS Clock Resource:外部有源晶振(旁路时钟源)Crystal/Ceramic Resonator:外部无源晶振(陶瓷晶振)无源晶振应用场景比较多,无需外部供电。有源晶振顾名思义,需要外部供电,由一个引脚输出固定频率波形。这两种晶振的接法参照手册如下图:...
2021-11-17 19:27:14 6695
原创 WIN10和WIN11修改C盘用户文件夹名称
文章目录前言一、目标二、步骤1.开启Administrator管理员账户2.重命名用户文件夹3.修改注册表4.修改环境变量三、后期问题处理总结前言当初安装WIN10系统的时候用了自己的名字当做用户名,系统自动在C:/Users目录下生成了用户文件夹,这个文件夹名称与账户名称是同步的。用户文件夹是中文会导致很多工具软件报错。这个用户文件夹下保存了我的文档文件夹,AppData文件夹,此文件夹是隐藏的,但保存了大量软件的数据资料,一旦改变了路径会导致大量软件报错用不了。经过从网上查找资料,研究和实践,本人
2021-11-06 14:10:16 109201 72
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人