回炉重造STM32 CUBEMX之串口通讯问题四

发布者:ByteWanderer最新更新时间:2019-08-07 来源: eefocus关键字:STM32  CUBEMX  串口通讯 手机看文章 扫描二维码
随时随地手机看文章

串口通讯+PWM波:STM32F103C8T6通过USART1输入相应的指令控制的TIM3四个通道生成四个占空比不同的频率为50HzPWM波来控制云台。


之前用FT232直连单片机,一切正常返回的指令无乱码正常。 


接上数传图传出现问题: 

1、连续给出高电平时间持续1.5ms的指令,电机本该静止却会往一个方向慢慢漂移。怀疑每次在发出指令单片机相应指令的过程中会导致PWM波占空比变化。 

2、接上数传后返回的指令中含有很多乱码。设备有时会莫名重启或者关闭。怀疑是发送的指令出现了偏差触发了开关机的指令。 

3、设备返回的图像黑屏 

解决方法: 

1、对于重复发出的指令,设置相应的重复处理程序。若指令相同或者相同指令持续3次则跳过该次指令返回”REPEAT COMMAND!!!”字样,直到接收到不同指令。 

2、加上校验码,采用的是求和校验的方式。 

3、重新研究了下PWM波高电平长短顺序控制设备的指令,发现之前的理解有误,重新修正了PWM波生成的顺序。 

4、图像黑屏是USB设备引起的,重启即可。


另外: 

1、校验方法可否改进。CRC校验? 

2、PWM波占空比设置方式可否改变。改为DMA直接控制,绕过CPU可否解决这个问题。



关键字:STM32  CUBEMX  串口通讯 引用地址:回炉重造STM32 CUBEMX之串口通讯问题四

上一篇:USART配置 STM32cubemx配置USART
下一篇:基于STM32F407时钟配置学习

推荐阅读最新更新时间:2024-11-05 10:30

STM32 关于外部中断线、中断源和中断服务函数的问题
中断线问题: 上图可以看出,PA0、PB0...PG0共用的EXTI0中断线,PA1、PB2...PG1共用的EXTI1中断线,也就是 编程里面的(如下图库文件),对应16个中断线,后面三个是专用的中断线,不做讨论。 有人要问,假设:我设置的引脚是PB9和PE9都开启外部中断怎么办?小编告诉你,这还真办不了,我实测过。配置函数的时候后覆盖之前的函数的(如下图所示) 如果这样配置的话,会出现出货光电1的初始化覆盖掉编码盘的初始化,说白了就是编码盘的设置被覆盖掉了,结果是外部中断 出货光电1管脚会触发而编码盘就不起作用了,这也是STM32其中一个问题所在吧! 反过来,结果是外部中断 编码盘 管脚会触发
[单片机]
<font color='red'>STM32</font> 关于外部中断线、中断源和中断服务函数的问题
STM32开发笔记50:STM32F4+DP83848以太网通信指南系列(四)
本章为系列指南的第四章,这一章将正式进入以太网的配置和使用。首先我们关注一下PHY的配置,前面讲到,我们的工程使用了开发板上的一颗DP83848芯片。 RMII和ADDR的确定 接下来我们来看开发板的原理图: 通过电路原理图可以看到接线方式是使用RMII接口模式接线的,因此接下来我们在配置PHY的时候注意要是用RMII。 我们知道DP83848,以及任何一个PHY芯片,都是有5个bit的地址信号的,RMII通信时会携带ADDR数据,只有ADDR吻合的PHY才会有响应。先来看看原理图上DP83848的管脚定义,原理图上DP83848的42号脚标注的PHYAD0,并且引脚悬空了,没有特别的处理。我们再来看看DP83848的数据手
[单片机]
<font color='red'>STM32</font>开发笔记50:STM32F4+DP83848以太网通信指南系列(四)
嵌入式-stm32学习:位带操作
// GPIO 位操作 #include stm32f4xx.h // 这里只定义了GPIO ODR和IDR这两个寄存器的位带别名区地址,其他寄存器没有定义 //SRAM 位带区: 0X2000 0000~0X200F 0000 //SRAM 位带别名区: 0X2200 0000~0X23FF FFFF //外设位带区: 0X4000 0000~0X400F FFFF //外设位带别名区: 0X4200 0000~0X43FF FFFF // 把“位带地址+位序号”转换成别名地址的宏 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x02000
[单片机]
stm32_文件组织结构
以前给出完整程序时,是为了方便初学者看。将main函数用到的所有函数都放到main函数后,在main函数前加上函数声明,这样会显得main.c文件没有层次,所有函数在main.c中冲淡了功能代码。 一般项目中的文件组织结构是这样的:main.c文件只包含体现功能的代码。 main.c头文件只包含两个 #include stm32f0xx.h #include hw_config.h 接下是用户自定义的宏,这些宏也要是跟功能息息相关的,说白了就是main函数用到的,如果跟功能不直接相关,可以放到hw_config.h定义,如GPIO管脚的定义 #define OE GPIO_Pin_5
[单片机]
stm32中断配置(NVIC)
内嵌向量中断控制器:Nested Vectored Interrupt Controller (NVIC) NVIC优先级结构体定义: typedef struct { uint8_t NVIC_IRQChannel; /*! Specifies the IRQ channel to be enabled or disabled */ uint8_t NVIC_IRQChannelPreemptionPriority; /*! 主中断优先级范围:0-16 */ uint8_t NVIC_IRQChannelSubPriority; /*! 从优先级 范围:0-16 *
[单片机]
STM32之TFT-LCD液晶
TFT-LCD即薄膜晶体管液晶显示器。其英文全称为:Thin Film Transistor-Liquid Crystal Display。TFT-LCD与无源TN-LCD、STN-LCD的简单矩阵不同,它在液晶显示屏的每一个象素上都设置有一个薄膜晶体管(TFT),可有效地克服非选通时的串扰,使显示液晶屏的静态特性与扫描线数无关,因此大大提高了图像质量。TFT-LCD也被叫做真彩液晶显示器。 TFT液晶原理: *背光模组:提供光源 *上下偏光片,TFT Glass Substrate, 液晶:形成偏振光,控制光线的通过与否 *彩色滤光片:提供TFT LCD R/G/B(三原色)的来源 *ITO透明导电层:提供透明的导电通路
[单片机]
<font color='red'>STM32</font>之TFT-LCD液晶
STM32之FSMC驱动LCD屏应用
首先,你得稍微了解一下FSMC的基本原理,就是说它是怎么用的,怎么配置,为什么能这么用。这个东西可以看看STM32F4的参考手册。这里不具体说了。 FSMC其实就是把芯片内部的数据总线和地址总线引出来了,其实51单片机也是有这个总线外接的。没有说把SRAM读到内部内存再读到CPU,SRAM就是内存,直接读到CPU的寄存器,通过内部的AHB总线传输的。 我使用的是野火开发板的屏,因为想用开发板提供的程序直接移植。(小白就只能干这种事)因为买的最小系统板是100脚封装的,所以在使用上有点小问题了。我在网上查了好多关于怎么在100引脚的板子上用FSMC上驱动LCD,没有找到合适的答案,既然自己运气好点,调出来了,那么就分享一下。
[单片机]
<font color='red'>STM32</font>之FSMC驱动LCD屏应用
基于STM32的LED点阵屏的设计与实现
近年来,随着信息产业的高速发展,点阵LED 显示屏已广泛应用于金融行业、邮电行业、体育馆、广告业等各种广告发布和信息显示系统,成为信息传送的重要手段。本文介绍的LED 书写点阵屏,不但可以像普通显示屏一样作为信息输出设备,而且可以通过光笔直接在LED 显示屏上进行信息输入,普通的显示屏也具有 手写 的功能了。 1 硬件系统设计 本系统总体框图如图1 所示,由键盘与显示模块、光笔模块、LED 点阵屏模块、STM32 控制模块、电源模块五部分组成。 图1 总体方案方框图 1. 1 核心控制模块 本系统以STM32F103VCT6 为控制核心。 STM32 是32 位微处理器,具有低功耗,中断延迟小,高性能等特点。STM3
[单片机]
基于<font color='red'>STM32</font>的LED点阵屏的设计与实现
小广播
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
更多往期活动
随便看看

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved