做MCU开发时,常常碰到串口接收的数据是字符型数据,是ASCII码,而我们需要解析的是数据型的。如:串口接收到的是:"-236,854,635"这个字符串。而我们需要将这个字符串解析为:int 的-236,854,635才能为我所用。
以下是实现功能的子函数。
void PutCharTOdata(double *tab,u8 *rev_tab,u8 rev_count)// tab[ ] 为转换后的数据,rev_tab[ ]为转换前的一个个字符,rev_count为字符串长度(字符的个数)
{
u8 i;
u8 pflag = 0;
u8 point = 0;
u8 F_flag =0;
for(i=0;i<10;i++) tab[i] =0.0;
for(i=0;i<rev_count;i++)
{
if((F_flag==0)&&(rev_tab[i] == '-'))//判断是否为负号
{
F_flag = 1;
}
else if(rev_tab[i]!=',')//判断是否碰到逗号
{
if(rev_tab[i]!='.')//判断是否碰到小数点
{
if(pflag)