资源简介
MSP430_C_code PWM输出程序 适合新学习者使用,有助于快速掌握。

代码片段和文件信息
#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 *pbufferunsigned char n_byteunsigned char *pjiao_zhi)
{
unsigned char q0q1=0;
for(q0=0;q0 {
q1 += *pbuffer;
pbuffer++;
}
*pjiao_zhi=q1;
if(q1== *pbuffer)
return 1;
else
return 0;
}
/*****************************************************************************
向缓冲区中增加一个数据
******************************************************************************/
void AddUsData(unsigned char sq0)
{
if(NRxBuff {
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(aRxBuffN_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(aTxBuffN_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 DoComma
属性 大小 日期 时间 名称
----------- --------- ---------- ----- ----
文件 9075 2005-02-28 14:10 PWM输出程序\Backup of PWM.ewd
文件 37910 2005-03-01 17:12 PWM输出程序\Backup of PWM.ewp
文件 3720 2005-07-12 10:57 PWM输出程序\bao.c
文件 3719 2005-07-11 12:10 PWM输出程序\bao.c.bak
文件 277 2005-03-01 09:58 PWM输出程序\bao.h
文件 555 2011-06-08 10:33 PWM输出程序\Debug\Obj\PWM.pbd
文件 1796 2005-07-12 10:58 PWM输出程序\df_uart.c
文件 1782 2005-07-11 12:11 PWM输出程序\df_uart.c.bak
文件 129 2005-02-28 20:56 PWM输出程序\df_uart.h
文件 1347 2005-07-12 11:02 PWM输出程序\main.c
文件 1364 2005-07-11 12:12 PWM输出程序\main.c.bak
文件 3986 2005-03-02 10:55 PWM输出程序\PWM.dep
文件 9075 2005-02-28 14:10 PWM输出程序\PWM.ewd
文件 37910 2005-03-01 17:12 PWM输出程序\PWM.ewp
文件 157 2005-02-28 14:10 PWM输出程序\PWM.eww
文件 1927 2005-07-12 13:39 PWM输出程序\pwm_timer_b.c
文件 2034 2005-05-24 14:50 PWM输出程序\pwm_timer_b.c.bak
文件 185 2005-03-01 10:23 PWM输出程序\pwm_timer_b.h
文件 183 2005-03-01 10:10 PWM输出程序\pwm_timer_b.h.bak
文件 2745 2011-06-08 10:33 PWM输出程序\settings\PWM.cspy.bat
文件 63 2011-06-08 10:44 PWM输出程序\settings\PWM.dbgdt
文件 511 2011-06-08 10:44 PWM输出程序\settings\PWM.dni
文件 3297 2011-06-08 10:44 PWM输出程序\settings\PWM.wsdt
文件 1291 2005-07-12 11:02 PWM输出程序\xieyi.h
文件 1291 2005-07-11 12:13 PWM输出程序\xieyi.h.bak
目录 0 2011-06-08 10:33 PWM输出程序\Debug\Exe
目录 0 2011-06-08 10:33 PWM输出程序\Debug\List
目录 0 2011-06-08 10:44 PWM输出程序\Debug\Obj
目录 0 2011-06-08 10:33 PWM输出程序\Debug
目录 0 2011-06-08 10:44 PWM输出程序\settings
............此处省略4个文件信息
- 上一篇:等保2.0三级清单配置.xlsx
- 下一篇:楚天世纪江湖V9.0地址
相关资源
- IAR for MSP430 v7.10.1 注册机
- 基于MSP430G2553的蓝牙控制小车
- 利用DS1302和msp430进行闹钟和万年历的
- msp430F149操作红外接收模块源码
- [免费]msp430f149控制PS2键盘并用1602显示
- MSP430f149读sd FAT txt
- 用8位spi实现16位spi
- 基于MSP430单片机的实时多任务操作系
- MSP430系列单片机例程(msp430f235)
- MSP430控制AD9850产生频率可调的方波及
- msp430f449程序
- 基于MSP430的数控直流电压源
- MSP430F5438A Timer_B 操作实验
- MSP430F5438 UCS 时钟操作实验
- MSP430F5438A Timer_A 操作实验
- MSP430F5438 看门狗实验
- IAR EW430连接仿真器在线仿真
- 初识畅学系列MSP430F149单片机开发板
- 畅学多功能实验箱 MSP430F5438 RTC 操作实
- MSP430F5438A RAM操作实验
- msp430f5438a技术资料
- MSP430 JTAGUSB的和并口的与目标板连接的
- MSP430教程:MSP430单片机ADC12模块
- WIA-PA网络技术在井下人员定位系统中
- 16位MSP430单片机的开关稳压电源设计
- 基于mps430f149的12864液晶显示模块编程
- MSP430F5529移植modbus
- MSP430详细教程
- MSP430信号发生器.rar
- MSP430F5529 例程源码
评论
共有 条评论