#include "bao.h"
#include "xieyi.h"
#include "df_uart.h"
#include "pwm_timer_b.h"
unsigned char aRxBuff[N_XY_BAO]; //接收数据缓冲区
unsigned char NRxBuff=0;
unsigned char aTxBuff[N_XY_BAO]; //发送数据缓冲区
unsigned char NTxBuff=0;
unsigned char bWaitRe=0; //1:发送数据包后等待PC返回对数据包的校验结果;0:不等待
unsigned char Command=NONE_COMMAND; //收到的指令
unsigned char SendByte=0; //准备发送的字节数
unsigned char bUartRxErr=0; //1:接收数据出错,如桢错、奇偶校验错等;0:没错
/*****************************************************************************
数据包校验
采用算术和的方法进行
pbuffer:指向要校验的数据缓冲区的指针
n_byte:校验的字节数
pjiao_zhi:计算出的校验值
返回值:校验通过为1,校验失败为0
******************************************************************************/
unsigned char JiaoYan(unsigned char *pbuffer,unsigned char n_byte,unsigned char *pjiao_zhi)
{
unsigned char q0,q1=0;
for(q0=0;q0<n_byte-1;q0++)
{
q1 += *pbuffer;
pbuffer++;
}
*pjiao_zhi=q1;
if(q1== *pbuffer)
return 1;
else
return 0;
}
/*****************************************************************************
向缓冲区中增加一个数据
******************************************************************************/
void AddUsData(unsigned char sq0)
{
if(NRxBuff<N_XY_BAO)
{
aRxBuff[NRxBuff]=sq0;
NRxBuff++;
}
}
/*****************************************************************************
处理Uart数据包
p0: 用来返回发送的数据的字节数
返回值:指向发送缓冲区的指针
******************************************************************************/
unsigned char* DoUart(unsigned char *p0)
{
unsigned char q0;
unsigned int iq0;
//判断接收数据
if(NRxBuff!=0)
{
if(aRxBuff[0]==HAND_OK&&bWaitRe==1&&bUartRxErr==0)
{
//发送完数据包,等待PC校验结果
bWaitRe=0;
NRxBuff=0;
SendByte=0;
}
else if(aRxBuff[0]==HAND_ERR&&bWaitRe==1&&bUartRxErr==0)
{
//发送完数据包,等待PC校验结果
SendByte=N_XY_BAO;
NRxBuff=0;
}
else if(aRxBuff[0]==HAND_BAO&&bWaitRe==0&&bUartRxErr==0)
{
if(NRxBuff==N_XY_BAO)
{
//数据包接收完毕
if(JiaoYan(aRxBuff,N_XY_BAO,&q0)==1)
{
//数据校验通过
Command=aRxBuff[1];
}
else
{
//数据校验错误
aTxBuff[0]=HAND_ERR;
SendByte=1;
}
NRxBuff=0;
}
}
else
{
//aRxBuff[0]不是合法的值或者数据接收错误
aTxBuff[0]=HAND_ERR;
SendByte=1;
NRxBuff=0;
bUartRxErr=0;
}
}
//处理指令
iq0=DoCommand(Command);
if(Command!=NONE_COMMAND)
{
aTxBuff[0]=HAND_BAO;
aTxBuff[2]=iq0>>8;
aTxBuff[3]=iq0&0xFF;
JiaoYan(aTxBuff,N_XY_BAO,&aTxBuff[4]);
SendByte=N_XY_BAO;
Command=NONE_COMMAND;
}
if(SendByte==N_XY_BAO)
bWaitRe=1;
*p0=SendByte;
return aTxBuff;
}
/****************************************************************************
其他模块检测到数据包有错时通知本模块数据通讯有错
****************************************************************************/
void SetBaoErr()
{
bUartRxErr=1;
}
/****************************************************************************
执行指令
****************************************************************************/
unsigned int DoCommand(unsigned char comd)
{
unsigned int iq0;
switch(comd)
{
case STOP_COMMAND:
//执行STOP_COMMAND指令
return (GoPwm(0));
case GO_COMMAND:
//执行GO_COMMAND指令
return (GoPwm(100));
case FRE_COMMAND:
//执行FRE_COMMAND指令
iq0=(aRxBuff[2]<<8)+aRxBuff[3];
SetFre(iq0);
return iq0;
case SC_COMMAND:
//执行SC_COMMAND指令
iq0=(aRxBuff[2]<<8)+aRxBuff[3];
SetScale(iq0);
return iq0;
}
}
没有合适的资源?快使用搜索试试~ 我知道了~
PWM-OUT.zip_out
共18个文件
bak:6个
h:4个
c:4个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 156 浏览量
2022-09-24
04:46:04
上传
评论
收藏 15KB ZIP 举报
温馨提示
MSP430的PWM模块输出程序,供大家参考,谢谢
资源推荐
资源详情
资源评论
收起资源包目录
PWM-OUT.zip (18个子文件)
PWM输出程序
PWM.dep 4KB
bao.h 277B
df_uart.c.bak 2KB
main.c 1KB
pwm_timer_b.h.bak 183B
PWM.ewp 37KB
xieyi.h 1KB
PWM.eww 157B
xieyi.h.bak 1KB
pwm_timer_b.c.bak 2KB
main.c.bak 1KB
df_uart.c 2KB
PWM.ewd 9KB
bao.c.bak 4KB
pwm_timer_b.c 2KB
df_uart.h 129B
bao.c 4KB
pwm_timer_b.h 185B
共 18 条
- 1
资源评论
钱亚锋
- 粉丝: 90
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 数电实验一:半加器、电路的逻辑功能、全加器,四人表决电路、组合逻辑电路
- 原生Javaee+jsp的一个课程项目为在线课程管理系统
- 企业人事管理系统 开发框架:vs2022 + asp.net + webform + sqlserver 数据库:sqlser
- jsp基于WEB的考务管理系统的设计与实现(源代码+lw).zip
- jsp基于Web的可维护的数据库浏览器(源代码+lw+答辩PPT).zip
- JSP基于WEB的图书馆借阅系统的设计与实现(源代码+lw).zip
- aht10的linux驱动
- JSP基于WEB网上论坛设计与实现(源代码+lw+开题报告+答辩PPT+外文翻译).zip
- 端午节et-mai开发比记
- JSP基于网络超市商品销售管理系统的设计与实现(源代码+lw).zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功