
STM32
文章平均质量分 60
学习
Hey pear!
空杯心态 C/C++ 嵌入式
展开
-
组合显示屏和按键实现两级窗口
组合显示屏和按键实现一个两级窗口,程序由三个页面组成,交互方式自定:有陀螺仪显示和LED控制两个选项,分别对应跳转二级窗口A和B:显示陀螺仪数据,如果无陀螺仪插入应当报错:显示任意两个LED状态,仅可在此界面控制LED亮灭,控制方式自定进入二级窗口后还应当具备返回的功能,窗口可以重复调用,多次窗口跳转LED状态自锁窗口的跳转和返回要符合菜单的思想,不能一个按键绑定一个窗口直接跳转 第一个界面显示,陀螺仪选择key1,LED选择key2 ok按下key1来到二级窗口A显示陀螺仪数据 现在的原创 2022-07-10 12:34:14 · 424 阅读 · 1 评论 -
陀螺仪控制舵机
从陀螺仪读取数据,以上电角度为目标,在舵机和开发板和陀螺仪同步转动时,舵机的总是指向目标需要使用和例程不同的IO口就是说,把舵机粘在开发板上,陀螺仪插在开发板上,在开发板水平左右转动时,舵机总是指向上电角度可以接收陀螺仪传感器本身的水平角度漂移,旋转角度在舵机可以达到的范围内 这个是我们最常用的陀螺仪MPU6050使用IIC通讯正常情况下我们不使用STM32的硬件IIC所以任选两个IO模拟IIC的通讯时序即可 pitch俯仰角yaw偏航角roll翻滚角 IO口的方向设置只原创 2022-07-08 11:17:28 · 3494 阅读 · 3 评论 -
定时器中断控制舵机
控制舵机从0°匀速转至最大角度,并匀速转回0°,一个来回周期为6s,循环往复,while1里不能写代码在3s内使舵机从0匀速旋转到180不能用硬件PWM硬件PWM就是设置了周期和占空比定时器自动输出波形提示一下,使用定时器中断永远不要尝试让中断间隔小于0.5ms1ms 0.001s 100091000000 1s7200/72=10009999 7199 1s重装载值arr 预分频系数psc43200000060000 720059999 7199 6s4999,7199原创 2022-07-08 11:08:20 · 1686 阅读 · 0 评论 -
电位器(摇杆)和舵机组合应用
电位器和舵机组合应用,如果是180°舵机,电位器有效范围也是180°,如果是90°舵机,电位器有效范围为90°,电位器和舵机角度位置同步,电位器有效起点自定,终点为(起点+90°/180°)桃开发板上电位器是左边的全向摇杆,使用摇杆的x轴或者y轴控制舵机角度例如摇杆在最左侧对应舵机0°,拉到最右侧舵机转到180°舵机的角度在摇杆的起点和终点上均匀分布摇杆本质是可调电阻,电阻分压后可以使用单片机的ADC获取位置状态...原创 2022-07-08 11:03:44 · 1427 阅读 · 0 评论 -
啃下大骨头——排序(三)
:假定在待排序的记录序列中,存在多个具有相同的关键字的记录,若经过排序,这些记录的相对次序保持不变,即在原序列中,r[i]=r[j],且r[i]在r[j]之前,而在排序后的序列中,r[i]仍在r[j]之前,则称这种排序算法是稳定的;否则称为不稳定的例子:6 3 5 4 5 9 1两个相同的值,如果排序之后红色的5依旧在蓝色的5前面,就是保证相对顺序不变,这就是稳定。 内部排序:数据元素全部放在内存中的排序。(以上说过的排序方法)外部排序:数据元素太多不能同时放在内存中,根据排序过程原创 2022-07-07 10:41:31 · 1016 阅读 · 38 评论 -
串口数据帧
1 a5 01 b4 有效012 a5 a5/b4 b4 有效a5/b43 01 b4 a5 01 报错4 a5 01 02 b4 报错5 随机无效 a5 01 b4 随机无效 有效01有效数据就是你需要得到的有用数据帧头 帧尾是固定的无效数据就是不符合帧头+有效数据+帧尾三字节格式的一个字节是十进制0~255也就是十六进制0x00到0xff一串任意长度的数据,只要里面有三个字节是 帧头+一字节数据+帧尾 那就是有效数据数据长度不匹配,原创 2022-07-04 17:15:48 · 2109 阅读 · 5 评论 -
模拟摇杆控制舵机
电位器和舵机组合应用,如果是180°舵机,电位器有效范围也是180°,如果是90°舵机,电位器有效范围为90°,电位器和舵机角度位置同步,电位器有效起点自定,终点为(起点+90°/180°) 洋桃开发板上电位器是左边的全向摇杆,使用摇杆的x轴或者y轴控制舵机角度例如摇杆在最左侧对应舵机0°,拉到最右侧舵机转到180°舵机的角度在摇杆的起点和终点上均匀分布摇杆本质是可调电阻,电阻分压后可以使用单片机的ADC获取位置状态......原创 2022-07-04 17:04:53 · 1002 阅读 · 0 评论 -
串口控制舵机转动
使用查询模式:使用的是disable串口中断'0’指是是ASCII字符0,不是十六进制1/9 1/30000 150045 3000a度数 x波a = (x-0.5)90x=a/90.0+0.5t = x30001/30001/90 1500 0.518 2100 0.727 2400 0.830.06 2502 0.834 100236 2700 0.945 3000 1 4.5=(1-0.5)*9原创 2022-07-01 15:51:57 · 4773 阅读 · 2 评论 -
PWM控制舵机
使用PWM控制舵机进行舵机在舵机角度范围内任意角度旋转。:尽量不要用外力阻碍舵机旋转,避免对单片机造成伤害。:初始位置0°,按一下按键(可自定任意一个按键)旋转30°,如果到头就转向,变成按一下按键反向转30°反复按一个按键,角度从0变到最大角度再回到0需要用到30°所以利用原有的0° 1500 0.5ms45° 3000 1ms……计算出比例就可以估算求得30.06 2502 0.834 1002整个周期是20ms,溢出值是600000 0.5ms 1500180 2.5m原创 2022-06-30 16:45:20 · 9069 阅读 · 1 评论 -
pwm呼吸灯
之前的是使用延时函数控制舵机,延时函数会占用单片机cup,效率低下pwm脉冲宽度调制器(占空比):控制高低电平利用微处理器的数字输出对模拟电路进行控制高电平LED点亮,低电平LED熄灭高电平的长度决定LED的亮度要有一个完整的周期,高低电平长度不断变化,周期长度(频率)不变,一个周期循环往复出现pwm可由stm32中的定时器产生,高级定时器TIM1,普通定时器TIM2,TIM3,TIM4ccrx表示在一个周期中高低电平的变化位置ccrx向上调整高电平比列减小,向下调整高电平比例增大原创 2022-06-30 16:26:51 · 1610 阅读 · 0 评论 -
STM32基础知识点
八种选择IO接口工作方式:GPIO_Mode_AIN 模拟输入GPIO_Mode_IN_FLOATING 浮空输入GPIO_Mode_IPD 下拉输入GPIO_Mode_IPU 上拉输入GPIO_Mode_Out_PP 推挽输出GPIO_Mode_Out_OD 开漏输出GPIO_Mode_AF_PP 复用推挽输出GPIO_Mode_AF_OD 复用开漏输出上(下)拉电阻的主要作用是将不确定的信号通过电阻钳位在高(低)电平,电阻顺便也起限流的作用。按键消抖通常的按键所用开关为机械弹性开关,当原创 2022-06-29 16:47:49 · 2880 阅读 · 3 评论 -
触摸按键与按键控制对应的LED状态翻转
触摸按键控制对应的LED状态翻转如图所示: 触摸按键实现LED状态翻转与机械按键原理是一样的,而且不需要用延时抖动。原创 2022-06-27 10:10:17 · 1329 阅读 · 0 评论 -
按键控制LED状态翻转
要求需要核心板上的LED灯与开发板上的LED是同步状态 LED1正极接PB0,负极接地(GND)当pb0这个端口输出高电平led1点亮怎么做到锁存:端口电平是固定的,while上面的语句就是读取端口状态,然后取反。比如端口原来是高电平,就切换到低电平。 左边全亮0x0F右边全亮0xF0全亮0xFF全灭0x00因为需要用到TM1604,所以hardware->TM1640.cc/c+±>.\Hardware\Tm1640 main.c.........原创 2022-06-25 16:58:17 · 2997 阅读 · 0 评论