MSP432(Keil5)——10.通过匿名上位机看数据

在这里插入图片描述

使用过匿名上位机的朋友应该知道,这个软件还是做的十分不错的,加之其可以通过串口将数据发送到电脑上,完成波形的显示,十分有效。
在这里插入图片描述

本次例程将完成在MSP432上与上位机通讯协议的编写。
在这个实例中我只完成了03号命令的发送,具体拓展可以自己修改。如果对匿名上位机不了解的话,建议先学习B站课程:传送门,一下就学会了,以后学其他的协议也很快。

ano.c

#include "ano.h"

unsigned char DataToSend[100];				//发送数组缓冲区


void ANO_Send03(short a,short b,short c,unsigned char d)
{
	unsigned char cnt = 0;						//地址偏移
	unsigned char sc = 0;						//和校验
	unsigned char ac = 0;						//附加校验
	unsigned char i = 0;
	
	DataToSend[cnt++] = 0XAA;					//帧头
	DataToSend[cnt++] = 0XFF;					//目标地址
	DataToSend[cnt++] = 0X03;					//功能码
	DataToSend[cnt++] = 7;						//数据长度:int16 + int16 +int16 + uint8 = 2+2+2+1 = 7
	
	DataToSend[cnt++] = BYTE0(a);		
	DataToSend[cnt++] = BYTE1(a);
	
	DataToSend[cnt++] = BYTE0(b);		
	DataToSend[cnt++] = BYTE1(b);
	
	DataToSend[cnt++] = BYTE0(c);		
	DataToSend[cnt++] = BYTE1(c);
	
	DataToSend[cnt++] = BYTE0(d);
	
	
	for(i=0; i<DataToSend[3]+4; i++)
	{
		sc += DataToSend[i];					//计算和校验
		ac += sc;								//计算附加校验
	}
	
	DataToSend[cnt++] = sc;						//依次发送两个校验
	DataToSend[cnt++] = ac;
	
	USART0_SendStr(DataToSend,cnt);				//通过串口发送数组的方式发送整个数据帧
}


ano.h

#ifndef __ANO_H
#define __ANO_H

/* DriverLib Includes */
#include <ti/devices/msp432p4xx/driverlib/driverlib.h>
#include "uart.h"

//强制指针类型转换完成字节拆分
#define BYTE0(dwTemp)			(*(char *)(&dwTemp))
#define BYTE1(dwTemp)			(*((char *)(&dwTemp) + 1))
#define BYTE2(dwTemp)			(*((char *)(&dwTemp) + 2))
#define BYTE3(dwTemp)			(*((char *)(&dwTemp) + 3))


void ANO_Send03(short a,short b,short c,unsigned char d);



#endif

同时还需要在串口(uart.c)文件下增加几个函数:

void Uart0_SendByte(unsigned char uch_byte)
{
	MAP_UART_transmitData(EUSCI_A0_BASE, uch_byte);
}



void USART0_SendStr(unsigned char *s,unsigned char cnt)
{
	unsigned char i = 0;
	
	for(i=0; i<cnt; i++)
		Uart0_SendByte(s[i]);
}

显示效果(没图了,手上也没单片机,放张以前的图):
在这里插入图片描述

  • 4
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值