记录一:Keil C语言字符类型转数字
uchar th = buf_string[2]-'0'; //thousand uchar hu = buf_string[3]-'0';//hundred uchar ten = buf_string[4]-'0';// ten uchar an = buf_string[5]-'0'; // an
或者用
char *s = "567"; char a = *s; int number1 = a - '0'; //5 a = *(++s); int number2 = a - '0'; //6 a = *(++s); int number3 = a - '0' //7
记录二:串口调试,虚拟串口软件
链接:https://pan.baidu.com/s/1hObMqO8nOpQ-BN-1ly5mNA
提取码:8e3n
记录三:下位机程序接收串口指令,控制舵机运动
KeilC开发AT89S52上C程序,串口发送角度数控制9G舵机运动,遇到问题:
uint flag; //uint8 flag;
char buf_string[8]; //定义数据包长度为8个字符
..........省略其他无关代码
/*********************************************************************************
** 功能 : 处理串口接收数据包函数(成功处理数据包则返回1,否则返回0)
*********************************************************************************/
bit Deal_UART_RecData()
{
if(buf_string[0]=='A'&&buf_string[8]=='#') // 进行数据包头尾标记验证
{
sendChar(buf_string[1]);
flag = buf_string[1];
return 1;
}
return 0;
}
void SteeringGearUp(uint i, uint j) //void SteeringGearUp(uint8 i, uint8 j)
{
pwm[i]=ms_5Con[j];
}
void main()
{
Timer0_Init();
Com_Init();
while(1)
{
//while(!flag);
while(flag==0);
tt = 0;
//sendChar(tt);
SteeringGearUp(0, tt); // 此函数写死固定角度,如:SteeringGearUp(0, 0) 正常运行;按现在程序用tt定义变量写死也能正常运行;就是改成传来的参数flag就没有反应了
//Delay(1000);
Led();
flag = 0;
}
}==========
波特率(bps.):单位时间传送二进制的位数 (bit/秒),他是衡量串口传输速度快慢的重要指标。
【例】
波特率是9600 那么1秒传输的二进制位数就是9600个

======
Copyright © 2015 - 2016 DISPACE.NET | 使用帮助 | 关于我们 | 投诉建议