自定义博客皮肤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)
  • 收藏
  • 关注

原创 环境检测仪之蜂鸣器手动自动报警(5)

当按键按下时可中断报警(且free=0,1秒后又一个循环free开始++)注:定时器和中断函数如果程序相同可能会导致功能异常(相互冲突)free设为==10表示手动报警10s后才会自动关闭。如想一个开灯一个控制关灯 两者又是同时刷新状态。当按键按下,执行中断,按0灯0亮,按1灯1亮。去正点按键实验复制key.c/h文件(略)注:fwlib的src中断文件也要添加。在中断中修改成PB0\PB1按键初始化。注:记得设置中断优先级(直接复制正点)修改一下时钟(PB0\PB1)主函数定义一个手动控制报警变量。

2023-09-16 17:38:52 102 1

原创 环境检测仪之蜂鸣器报警手动控制(4)

OLED和BEEP需要用到定时器的原因:不断刷新工作状态进行反馈。任一条件超过就会报警。(灯闪、beep响)

2023-09-15 15:28:41 67

原创 环境检测仪之OLED显示(3)

因为每次oled接收的时候都会刷新一下接收的信号——所以需要添加一个定时器函数文件。在time.c定义一个数组oledbuf,extern调用主函数声明过的形参。time.c也要丢进去(报错是因为time文件没有添加oled.h文件)2499——延迟250ms(可修改)注意OLED_Refresh和clean的用法。然后添加标准库里面scr的tim.c。包含头文件time.h/定时器初始化。,所以128/8=16(最多/行)复制,用TIM2来控制OLED。注:oled是128*64个。

2023-09-15 15:23:45 53

原创 环境检测仪之温湿度光照传感器采集(2)

下载DHT11和OLED中景园(0.9寸IIC)模块资料(淘宝问商家)引入头文件dht11.h,由dht11.c文件可知 要传四位指针进去。流程:1、引入bh1750.h;在后面设备发送到MQTT那里,在onenet社区下载代码。用printf——串口1打印温湿度(记得串口要初始化)更换一下正点原子里面的usart文件,然后引入头文件。注:测试oled的时候要先看清除引脚是否对应好。声明温湿度实参,然后替换复制过来的形参、将光强值赋值给上面定义的光强Light。都丢到hardware文件里面。

2023-09-15 15:22:01 82

原创 环境检测仪之搭建框架(1)

最后,在main中修改一下就可以看到两灯循环亮。把led.c和led.h改成PA4,PC13。Debug选择st link(128K)下载mini板的库函数 由跑马灯开始改。

2023-09-12 21:48:37 38

原创 10 小车运动控制

/左原地旋转 // motorPidSetSpeed(1,-1);很容易得到一下控制方式。

2023-09-09 14:12:33 123 1

原创 09 调整采样周期和PID调参方法

在main函数可以改与上位机的通信(如设为P1,P2以区别电机1,2…1、简介:正如之前所说,现在我们PID控制函数是在主函数中循环调用,作为函数地址 访问因为是地址,访问结构体变量要用->把测试好的PID 参数分别写在PID_init里面。然后可以分别调节电机1的参数和电机二的参数。烧录测试一下,是否可以改变波形和调整参数。然后当前系统特点 :I 对于系统更重要。更改一下PID函数,这里我们使用结构体。

2023-09-09 14:11:33 359 1

原创 08 上位机)PID速度控制--接串口1!

如果使用32单片机 小端模式,0x23高地址,0x14在低地址,所以我们要先发低地址,再发高地址。gtihub链接:https://github.com/DaveGamble/cJSON。那么如何解析出低字节或者高字节,就需要知道多字节数据在单片机里面是怎么存的,因为。//需要发送16位,32位数据,对数据拆分,之后每次发送单个字节。然后我们通过串口发送命令,就会改变PID的参数了。,所以低字节就在低位地址中,高字节高位地址中。整,在电机一直转的不能达到要求时候能够。那么就要求,比如我们在发送16位数据。

2023-09-09 14:10:05 279 1

原创 07 编码器测速

2、那么编码器的输出信号具体是什么?我们如何根据输出信号测量转速和方向?这个是计数方向与编码器信号的关系、我们拆开来看。arr和psc都是MX TIM1已经设好的值了。10ms(设置的延时10ms)*100=1s。A上升沿,B低(顺),A上升沿,B高(逆)(编码模式,65535,TI1\2都计数)下面是代码(一定要把主函数没有用的删除掉)STM32中文参考手册-第267页。我们先测试的结论是否有问题?主函数就输出速度大小就可以了。计数方向(向上向下计数)6、开启定时器和定时中断。(main所延迟的函数)

2023-09-09 14:03:44 134 1

原创 06 电机驱动和PWM (2)

*PA11-TIM1_CH4 定时器PWM输出-**PWMA 前面已经完成。**PA8-TIM1_CH1 定时器PWM输出-**PWMB 前面已经完成。综合电机使用方法、C8T6单片机硬件资源、小车原理图我们要进行如下配置。4、**实物测试代码:**如何让电机90%电压转速 旋转 烧录代码。开始添加控制电机正反转与速度的代码,进行仿真和电机测试,为了方便移植和使用,我们GPIO电平控制写成宏。1、电机驱动芯片**(A4950)**下面我们编写小车电机方向和速度控制。我们按照这种使用方法。

2023-09-09 11:30:06 61 1

原创 05 PWM控制电机

可以向硬件输入数据或者由硬件输出数据、比如按键仿真的时候就可以使用硬件仿真。但是硬件仿真好像目前还不能使用过逻辑分析仪、但是硬件仿真是在硬件上跑的。在Time定时器中设置psc预分频和arr重装载值。设置PA8和PA11,为定时器1的通道1,4。那么频率就是 1/0.002 = 500HZ。上面我们生成了PWM下面我们测试一下。因为Cube在生成代码时,有很多。上面第一个点击(使用软件仿真)3、我们使用软件配置。我们可以使用这个宏来。

2023-09-08 15:35:23 34 1

原创 04 串口实验(简单输出 )

在usart.c添加这个typedef struct FILE FILE;添加一下测试(主文件。

2023-09-08 15:29:53 50 1

原创 03 OLED使用

编译一下–把所有的u8都替换成uint8_t u32 替换成uint32_t(所有project)设置PA15,PB12为GPIO_OUTPUT,推挽输出,备注为oled_SDA、SCL。编译报错 找不到uint8_t 包含一下#include “main.h” 解决。然后我们生成代码,更改一下IIC协议的GPIO设置,和初始化部分。编译没有报错了,我们在主函数添加初始化和测试代码。下面是一些GPIO的错误,我要解决初始化问题了。编译一下–找不到sys.h 删掉sys.h。有警告 声明加上void。

2023-09-08 15:27:16 39 1

原创 02 按键点灯

GPIO_Mode_IT_RISING——具有上升沿触发检测的外部中断模式(边沿触发)2、先选中↑两个引脚,点击设置为GPIO中断模式,然后设置图下的模式。GPIO_Mode_IT_FALLING——下降沿推挽输出。复制_weak包含函数到gpio.c,然后敲下面。右击中断请求处理的定义defnation。再备注好对应的KEY1,2。把main中控制闪烁注释掉。

2023-09-08 15:22:26 44 1

原创 <基于stm32最小系统智能小车>01点灯

4、使用MDK打开工程先编译一下,没有报错、没有问题。2、选择PB13,设置为:GPIO_out_out。1、这里我们点亮PC13连接的小灯。5、在BEGIN和END添加代码。3、备注为LED,编译。小灯每0.5秒闪烁一次。

2023-09-08 15:16:42 72 1

空空如也

空空如也

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

TA关注的人

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