STM32使用虚拟示波器

发布者:平和思绪最新更新时间:2022-08-10 来源: csdn关键字:STM32  虚拟示波器 手机看文章 扫描二维码
随时随地手机看文章

在调试过程中.,经常会有需要看到数据实时变化的情况,这时候便需要用到虚拟示波器。如:制作平衡车时,需要了解拟合角度跟随加速度计和陀螺仪的动态变化情况;做电机PWM调速时需要了解速度的变化曲线等。


对于虚拟示波器的选择,由于之前参加过飞思卡尔,用过是山外的多功能调试助手中的虚拟示波器,感觉还不错。

多功能调试助手

现在想用stm32制作一个平衡车,需要用到虚拟示波器,现在把使用方法分享出来,给那些有需要的人。

首先是通信协议:(下面是虚拟示波器部分的通信协议)

虚拟串口通信协议

虚拟示波器采用串口通信的方式和下位机通信。因此首先要配置好串口(这里就不做介绍了),接下来便需要实现发送函数。


///发送一个字节的数据

void usart3_send_char(uint8_t c)

{

 while(USART_GetFlagStatus(USART3,USART_FLAG_TXE)==RESET); //循环发送,直到发送完毕

 USART_SendData(USART3,c);

}


///发送指定长度的数组

void usart3_putbuff (uint8_t *buff, uint32_t len)

{

    while(len--)

    {

        usart3_send_char(*buff);

        buff++;

    }

}


///根据通信协议向上位机发送数据

void vcan_sendware(uint8_t *wareaddr, uint32_t waresize)

{

    #define CMD_WARE     3   //3代表虚拟示波器,1摄像头,2CCD

  

    uint8_t cmdf[2] = {CMD_WARE, ~CMD_WARE}; 

    uint8_t cmdr[2] = {~CMD_WARE, CMD_WARE};  

    

    usart3_putbuff(cmdf,sizeof(cmdf));

    usart3_putbuff(wareaddr,waresize);

    usart3_putbuff(cmdr,sizeof(cmdr));

}


下面举一个发送的例子


#include


float a = 1.5;

float warebuf[8];


void main(void)

{  

  while(1)

  {

    a = 10 *a;

    warebuf[0] = a;

    vcan_sendware((uint8_t *)warebuf,sizeof(warebuf))

    delay_ms(10);

  }

}


山外多功能调试助手的下载链接:http://www.vcan123.com/thread-5988-1-1.html

关键字:STM32  虚拟示波器 引用地址:STM32使用虚拟示波器

上一篇:STM32驱动多个超声波模块(只用一个定时器)
下一篇:STM32驱动MAX6675读取K型热电偶温度

推荐阅读最新更新时间:2024-11-11 15:32

使用STM32CubeMx配置STM32输入捕获功能
输入捕获原理 在输入捕获模式下,当检测到ICx信号上相应的边沿后,计数器的当前值被锁存到捕获/比较寄存器(TIMx_CCRx)中。当发生捕获事件时,相应的CCxIF标志(TIMx_SR寄存器)被置1,如果开放了中断或者DMA操作,则将产生中断或者DMA请求。如果发生捕获事件时CCxIF标志已经为高,那么重复捕获标志CCxOF(TIMx_SR寄存器)被置1。写CCxIF=0可清除CCxIF,或读取存储在TIMx_CCRx寄存器中的捕获数据也可清除CCxIF。写CCxOF=0可清除CCxOF。 摘自《STM32参考手册中文》 简单解释:定时器一直在计数,如果检测到设置的极性边沿,会把当前的计数值存下来,并触发中断; 比如,
[单片机]
使用STM32CubeMx配置<font color='red'>STM32</font>输入捕获功能
STM32获取当前系统时钟
代码如下: RCC_ClocksTypeDef get_rcc_clock; //获取系统时钟状态 RCC_GetClocksFreq(&get_rcc_clock); //仿真的时候就可以在结构体get_rcc_clock中看见各个外设的时钟了 注意: 上述代码中的结构体RCC_ClocksTypeDef原型,可以在库文件stm32f10x_rcc.h中找到,如下: typedef struct { uint32_t SYSCLK_Frequency; /*! returns SYSCLK clock frequency expressed in Hz */ uint32_t HCLK_Frequen
[单片机]
stm32 stm8 I2C相关总结
一、I2C协议简介 I2C是两线式串行总线,用于连接微控制器及其外围设备。两根信号线分别是: 时钟信号线SCL和数据信号线SDA。 二、I2C总线传输时序 2.1 I2C传输协议的三种信号 I2C在数据传输过程中有三种信号类型,分别是:起始信号、结束信号和应答信号。 ①起始信号:在时钟信号SCL为高电平时,数据线SDA由高电平跳变为低电平,开始传输数据; ②结束信号:在时钟信号SCL为高电平时,数据线SDA由低电平跳变为高电平,数据传输结束; ③应答信号:接收数据的IC在接收8位(一个字节)数据后,向发送数据的IC发出特定的低电平信号,表示已经收到数据。准确的说法是:发送设备在时钟信号SCL的8个脉冲的驱动下发送了8个bit,即一
[单片机]
<font color='red'>stm32</font> stm8 I2C相关总结
STM32单片机(五)-寄存器地址理解和控制LED闪烁
芯片:stm32f103zet6 1、存储单元一般应具有存储数据和读写数据的功能,一般以8位二进制作为一个存储单元,也就是一个字节.每个单元有一个地址,是一个整数编码,可以表示为二进制整数。 2、stm32是32位单片机,说明基本的寄存器是32位的,4字节。内存地址需要4位 3、基址也就是基础地址,最开始的地址,这个查看芯片手册,是人家规定的。 4、偏移,即偏移地址,一般是正整数,也是增加的数字。比如基址是10,偏移是4,地址就是10+4=14. 下面STM32F10xxx中内置外设的起始地址。 每个外设的起始地址就是,每个外设的基址了,当然这个基址也可以再分解为基址和偏移地址。 比如,GPIOB的起始
[单片机]
<font color='red'>STM32</font>单片机(五)-寄存器地址理解和控制LED闪烁
STM32学习笔记之EXTI(外部中断)
一:EXTI(外部中断)说明 =========================================分割线========================================= 外部中断/事件控制器由19个产生事件/中断要求的边沿检测器组成。每个输入线可以独立地配置 输入类型(脉冲或挂起)和对应的触发事件(上升沿或下降沿或者双边沿都触发)。每个输入线都可以被独 立的屏蔽。挂起寄存器保持着状态线的中断要求。 =========================================分割线========================================= 19个中断如下:
[单片机]
<font color='red'>STM32</font>学习笔记之EXTI(外部中断)
STM32IO及定时器映射到地址
意义: 有时候我们在操作多个STM32 IO 时,硬件设计未必有规律,比如输出引脚是:PB3,PC4,PC5,PD0,但是操作这些引脚具有共性,或者说我们想用 for(it i = 0; i 4; i++) 像操作数组一样操作这些引脚,程序将变得非常简洁,这时候把 IO 映射到地址就可以实现该目的。 方法: 1.//位带操作,实现51类似的GPIO控制功能 //具体实现思想,参考《CM3权威指南》第五章(87~92页),M4同M3类似,只是寄存器地址变了 //IO口操作宏定义 #define BITBAND(addr, bitnum) ((addr & 0xF0000000)+0x2000000+((addr &0xFFFF
[单片机]
基于μC/OS-III及STM32的多功能控制器设计
  电动轨道车控制系统一般分为多个子系统,子系统受一个主控器控制。这样的结构设计繁琐,编程复杂。采用μC/OS-III操作系统、STM32F103RC微控制器、12864液晶屏、PVC按键、无线串口模块、锂电池等实现具有人机界面、无线串口功能的总线主控器。该控制器具有人机界面、轨道车主控器、遥控接收器、遥控面板等多种功能,并且能在不同项目中使用。(※ μC/OS-III从官网上下载,文件名为Micrium_uC-Eval-STM32F107_uCOS-III,版本为V1.29.01.00。)   1 硬件结构   从系统接口看,该控制器具有显示、按键、无线收发、串口、485总线等接口,作遥控面板时用电池供电,内部具有电池和充电
[单片机]
基于μC/OS-III及<font color='red'>STM32</font>的多功能控制器设计
STM32单片机(5) 定时器中断实验
/******************************************************************************* * * 软件功能: 定时器中断实验 * *******************************************************************************/ #include stm32f10x.h #include delay.h void RCC_Configuration(void); void GPIO_Configuration(void); void NVIC_
[单片机]
小广播
设计资源 培训 开发板 精华推荐

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

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

换一换 更多 相关热搜器件

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

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