记录一: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 | 使用帮助 | 关于我们 | 投诉建议