STM32F1串口通信控制LED和MG90S

你好,这里是正清的第一篇博客。

实验说明

上位机通过串口1像下位机发送数据帧形式的指令,下位机接收到指令后执行对应操作。
eg:
通过XCOM发送16进制形式指令:0x00 0x0A时,舵机旋转0度。

LED.C
void LED_Init(void)
这里只讲解其中一行代码:

 GPIO_Init(GPIOA, &GPIO_InitStruct);
//参数1:GPIOA:端口
//参数2: GPIO_InitStruct:指向GPIO_InitTypeDef的指针  ,包含了外设GPIO的配置信息

PWM.C
周期=(arr+1)(psc+1)/CLK;
arr:TIM_Period 自动重装载寄存器的值 200-1
psc:TIM_Prescaler预分频寄存器值 7200-1
CLK为计数器的时钟频率72MHz
T=200
7200/72000000=0.02s=20ms

在周期20ms的PWM信号中,不同的脉宽对应舵机不同的转动角度,在0.5ms-2.5ms间有效。
通过配置占空比来配置脉宽。
确定PWM的占空比:
TIMx_CCR1—TIMx_CCR4确定定时器的CH1—CH4四路PWM的占空比。直接给该寄存器赋0—65535值即可确定占空比。占空比计算方法:TIMx_CCRx的值除以ARR寄存器的值即为占空比,因为占空比在0—100%之间,所以一般TIMx_CCRx寄存器值不能超过ARR寄存器的值,否则可能会引起PWM的频率或占空比的准确性。

main.c

for(i=0;i<=2;i++){delay_ms(300);LED0 = LED1 = 1;delay_ms(300);LED0 = LED1 = 0;}//就绪标志

接收数据帧模板:

if(USART_RX_BUF[5]==0x00&&USART_RX_BUF[6]==0x0A)
{
TIM_SetCompare1(TIM1, 175);
printf("舵机旋转0度\r\n");
}

TIM_SetCompare1函数:

{void TIM_SetCompare1(TIM_TypeDef* TIMx, uint16_t Compare1)
{/* Check the parameters */assert_param(IS_TIM_LIST8_PERIPH(TIMx));/* Set the Capture Compare1 Register value */TIMx->CCR1 = Compare1;
}

usart.c

例程代码,不再赘述。

最后

虽为小白,志为共勉,接受质疑,欢迎提问。

STM32F1串口通信控制LED和MG90S相关推荐

  1. 【STM32F10x串口通信控制LED输出模式以及亮灭】

    STM32F10x串口通信控制LED不同模式以及亮灭 非常简单!具体功能如下: 默认状态:key0->绿灯翻转 key1->红灯翻转 串口输入1:key0->红灯翻转 key1-&g ...

  2. 合泰HT32F52352 USART串口与电脑通信控制LED

    大怨种经过3天的学习终于把USART串口与电脑通信控制LED完成了,这过程中遇到了许多问题,参考了许多文章,在这就不把所有参考文章都一一列出了,基本上所有的HT32的学习笔记大家的USART.c的文件 ...

  3. 【GD32F427开发板试用】-01-UART1 串口控制LED灯亮灭

    本篇文章来自极术社区与兆易创新组织的GD32F427开发板评测活动,更多开发板试用活动请关注极术社区网站.作者:智能家居-九俊楚子 今天用GD32F427R开发板先测试了UART1的通信功能,然后通过 ...

  4. STM32F103:二.(2)串口控制LED

    串口控制LED 大概通一下流程,具体USART和NVIT后续再写 不得抱怨一句,这芯片贵的让人发吐,让我们学生党还怎么活 最近学习越学越没有动力,一点学习的心情都没,脑壳疼,先把32入门看后续写会不会 ...

  5. STM32通过串口控制LED闪烁或者呼吸效果

    STM32通过串口控制LED闪烁或者呼吸效果 目录 STM32通过串口控制LED闪烁或者呼吸效果 1.准备工作 2.思路分析 3.实际操作 4.小结 1.准备工作 1.首先我们需要准备32的最小系统板 ...

  6. CC2530串口控制LED灯奇怪玩法

    CC2530串口控制LED灯奇怪玩法 实验目的:CC2530用串口从上位机发送16进制命令代码来控制LED3.4.5.6并返回相应动作 文章目录 CC2530串口控制LED灯奇怪玩法 一.串口设置 二 ...

  7. STM32F103C8T6串口控制LED闪烁

    任务:开启时单片机回复已打开:关闭时在电脑显示已关闭:发 送 1 打开:发送 2 关闭. 本次学习是基于STM32的通用定时器结合串口,进行对LED灯闪烁的控制,使得延时函数时带来的误差性,以及消耗大 ...

  8. STM32串口通信控制pwm

    **STM32F103RC串口通信控制PWM**首先是配置我们的串口模块两个数据引脚如下 首先是配置时钟串口,每个32的芯片不一样时钟线也不一样,再就是两个引脚的初始化,看数据手册来配置,一般都是设置 ...

  9. 单片机:电脑通过串口控制LED灯

    题目概述: 电脑通过串口控制LED灯. 编程: #include<REG52.h> void delay(unsigned int xms) { unsigned int i,j; for ...

  10. STM32F40实现 按键密码锁、按键控制LED 、串口选择菜单 、串口控制LED开关 、串口控制蜂鸣器开关及响度 、串口控制蜂鸣器播放音乐 、按键控制LED的亮度

    本人第一次发文,很多都不懂,尤其害怕版权问题,如果有人质疑我有盗权行为,请联系我,因为项目也遇到很多问题,然后就解决嘛,可印象中只有播放音乐代码有借鉴,所以如果有质疑盗了权的,请务必联系我.板子是使用 ...

最新文章

  1. js室内地图开发_如何使用JS来开发室内三维地图的轨迹回放功能
  2. NeHe教程Qt实现——lesson11
  3. Oracle中删除数据的一个小技巧
  4. sql 修改时间戳语句_从 0 到 1 搭建技术中台之 SQL 审核平台
  5. 2013\National _Java_A\3.埃及分数
  6. java 捕获特定异常_java – 使用特定消息捕获异常
  7. 输出字符串引用名java_将方法名称作为字符串给出时,如何调用Java方法?
  8. mysql 5.6 ddl 锁表_MySQL数据库之MySQL5.6 Online DDL 是否锁表、rebuild表、inplace的说明...
  9. linux脚本 校准时区,shell脚本校准系统和bios时间
  10. C语言作业 – 数组排序算法可视化
  11. USB闪存驱动器未显示在MacOS的Finder或磁盘工具上,是什么原因
  12. C99的新关键字_Bool
  13. 机器人学回炉重造(3):matlab复现最基本的六自由度机械臂逆运动学推导
  14. 对称正定矩阵的Cholesky分解
  15. 小米3手机无法打开WLAN ,WIFI 的解决方法,不需刷机
  16. BAT超级入口“连接”战
  17. 2021-03-17
  18. 浏览器被23545等网站劫持,以Chrome为例亲测有效的两个解除劫持的方法
  19. java开发wap_C#开发WAP程序
  20. 微信屏蔽app下载链接如何解决

热门文章

  1. TI-C2000-捕获模块ECAP应用-以欧姆龙E6B2-CWZ6C测速编码器为例
  2. 王菲给师父打电话拜年,受高人指点,她扶摇直上联手天王横扫歌坛
  3. 关注智能眼镜:tooz Devkit 20
  4. Quorum工作原理
  5. react学习笔记(二)
  6. matlab熵权法,matlab—熵权法
  7. PyTorch基础:数据处理(数据可视化)
  8. Linux下的man指令
  9. 在mudbuilder上的胡扯3
  10. Intent启动拨号盘,实现打电话功能