自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(15)
  • 资源 (1)
  • 收藏
  • 关注

原创 qt 基础工程创建,简单的分层,使用MVC架构

比如一个自定义圆环进度条,在view下创建一个customView存放自定义的视图类,再创建一个subUI文件目录,保存子窗页面类,带.ui文件。1.先创建一个空的子目录,并把软件自动生成的一些驱动放在debug文件夹下,和编程代码区分开。使用相同的方式,在ctrl目录下创建一个serial串口设备控制器。基础工程基本完成,需要怎么功能在相对于的目录下创建该模块功能。创建3个文件夹,并在文件夹下创建.pri文件。在model目录下创建串口解码和计算文件。1.然后在对于的文件目录下继续细分模块。

2024-08-13 11:29:17 138

原创 QT5 圆环渐变进度条

2.在ui页面拉一个widget组件,然后提升为CircularProgress类。1.直接new一个CircularProgress,然后设置大小和位置。大小和位置直接在ui设计窗口就能设置,比较方便,本次实验就是这种方式。1.需要创建一个圆环类,继承QWidget。使用 qt的Widget组件画圆环进度条。//简单使用环形进度条显示完成。2.源文件,封装一些简单的设置。代码写好后,直接调用就行了。

2024-08-09 18:25:49 178

原创 DS3218伺服舵机驱动,驱动使用pwm,模式使用的高级定时器的重复计次功能。DS3218可以转动小角度,比如1,2,10度。

初始化代码,高级定时器8,通道1,引脚PC6,使用高级定时器的重复计数功能实现脉冲个数。舵机的转速看资料,5v电源时,60需要160ms,大概8个脉冲信号。可以看到,和普通的SG90舵机驱动是差不多,直接上代码;公式是y=(2000 * x)/180) + 500;差不多这样子,自己优化代码。最小角度好像是0.36度。按键点击,舵机旋转到180度位置,30个脉冲足够了。通过修改占空比来转动不同的角度。DS3218伺服脱机参数。//封装DS3218驱动。

2024-06-29 16:01:31 376

原创 MATRIX KEY 4*4触摸按键模块 VK36N16I芯片

大无语事件,本来有一块TTP229的4*4的触摸按键,之前调好了的,再次使用时发现用不了,误触发严重,然后想着再买一个,就买了一个外表一模一样的模块的。最后用放大镜看ic才发现,不是ttp229,然后再问客户拿资料,这个模块还没有mcu驱动的代码,都是arduino的历程,这对于我这种没接触过的arduino就很无语,网上找不到VK36N16I的资料和例程,这对于我这种CV大师很不友好。但是实际是按键1对于0x0001,按键4才对应0X0002,是列一次顺序,算了,有规律就行。使用的简单的iic驱动方式。

2024-05-21 00:21:19 306 5

原创 stm32f407驱动LV53L0X模块

数据出来,但是误差有点大20cm误差有2-3cm,。1.stm32移植lv53L0x模块,需要一份api驱动代码。短距离高精度的话还是用lv6180x模块好一点。lv53l0x 是st出的tof测距模块。2.替换自己的的iic驱动模块。//然后根据demo设置就好了。设置成高精度模式可能会好一点。都是一些官方的api文件。自己准备一份iic驱动。3.按照Demo移植。

2024-04-25 18:48:04 374 1

原创 stm32f407驱动多个lv6180x模块

2.通过0x0212寄存器,可以零时修改总线地址,替换掉0x29.修改地址只是临时的,模块断电将自动变回0x29。//第二个模块误差有点大,应该和线有关,换了线误差好了一点。1.每个lv6180x的物理地址总线是0x29,只要断电重启,都是该地址。3.通过SHDN引脚,可以断开模块,通过驱动SHDN引脚来修改模块地址。2.LV6180x_MODULE_1_ADDR 宏定义需要设置的地址,一组iic总线驱动多个lv6180x模块的要点。//已经封装好,移植只需要简单修改几个参数就能用。

2024-04-25 18:24:17 338

原创 STM32F407驱动VL6180X激光测距模块

stm32f407 +hal+FREERTOS, VL6180X模块

2024-04-24 19:29:24 650

原创 裸机下led显示

裸机下多led显示互不干预,灭,亮,闪烁,定时

2023-12-09 17:55:51 367

原创 串口通讯协议,crc校验码

参数模式:CRC-16/MODBUS。

2023-12-06 16:25:30 498

原创 stm32 g030系列烧录问题

之前用JFlash烧录STM32 F103能正常烧录,但是烧录G030的bin文件的时候,一直无法烧录不了,显示无法连接。让后把JFlashv6.7升级到v7.9,还是显示无法连接。然后检查IO口有没有接错,检查发现一切没问题后。下载安装完成后,进入MDK工程,连接jlink到mcu,打开keil5的debug,更新JFlash的驱动到V7.9.因为没有源工程,所以用MDK创建一个简单的工程,上官网下载G03系列的安装包。不能烧录的重点应该是JFlash要更新到v7.9,还有对应的驱动。

2023-09-09 14:15:17 937

原创 简单的红外解码方式 -输入捕获

38k红外发射灯有4组,需要间隔发送5个不同的信号来区别4个方向和一个近点信号,目前接收灯只有一个,后期可能要增加2个,如果接收灯多的话,就要使用IO轮询的方式。如果是pwm够用的情况下用输入捕获会比较简单些,如果要多组红外解码的话,比如6个红外接收头,那就使用轮询IO口的电平,然后保存数据再解码。这解码自定义的红外信号,因为是测试用的,写的乱了点,大概思路就是这样子,后面还会增加遥控器的解码,选型还没选好,预留个接口就好。因为我需要解码的信号比较多,有自定义的,还有红外遥控器的,所以我就用方式3;

2023-08-04 11:58:43 706

原创 mcu中的DMA功能

数据能传输出去了,但是传输的数据确实乱码的,导致灯带不规则点亮,找了很久原因,一直以为是pwm配置出了问题,然后用逻辑分析仪抓了一下波形,pwm频率周期设置是没问题,但是数据就是乱的,排除只能是DMA配置出了问题,最后找到原因了, 是DMA的字宽和缓存数组的类型大小不一样,我的数组是char,DMA配置的是两个字节 DMA_InitStruct.DMA_PeripheralDataSize = DMA_PeripheralDataSize_HalfWord;

2023-07-18 18:21:33 301

原创 SPI+DMA

/根据DMA_InitStruct中指定的参数初始化DMA的通道USART1_Tx_DMA_Channel所标识的寄存器。//DMA通道的DMA缓存的大小。

2023-07-18 18:20:11 2002 1

原创 STM32 PWM+DMA

定时器2在APB1中线上,系统时钟是72M,TIM_Prescaler=0,.TIM_Period=89,一个周期就是1.25us,符合WS2812的时序,一个时钟时间是1/72=14ns,25*14ns=350ns符合0码,45*14=630ns符合1码时序。我使用的是PA1,定时器2通道2.再看一下DMA的配置,TIM2_CH2对应的DMA1通道是7.在确认主控硬件资源之后,先别急着敲代码,先了解一下WS2812的驱动方式。void Ws2812b_CloseAll(void)//熄灭。

2023-07-18 18:19:21 2293

原创 国名技术n32l4系列输入捕获

主要是为了读取水流传感器的频率变化,捕获一个上升沿和一个下降沿,就可以得到一个周期T,单位是毫秒。1000ms/T=f (HZ)了。中断函数只获取标志,程序不要在中断执行,我放在100ms定时扫描任务里面。我使用的PB10 口,在定时器2的通道3。我用的传感器是水流越大,频率越高。关于N32L430输入捕获方式。配置完成后,开始写中断函数。好了,可以读取频率了。

2023-04-14 17:59:39 230 1

MATRIX KEY 4*4触摸按键模块

VK36N16I芯片 STM32F103驱动代码

2024-06-16

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除