嵌入式开发,C51,KeilC,记录 -- softwbc 发布于:2017年11月18日 浏览量:3729  |

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

京ICP备13033209号-2