当前位置:网站首页>MCU接收串口字符型数据转换成数据型数据
MCU接收串口字符型数据转换成数据型数据
2022-08-03 05:24:00 【langaopeng】
做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)
{
tab[point] = (double)(rev_tab[i]-0x30)/(pow(10,pflag))+tab[point];
pflag ++;
}
else
{
tab[point] = (rev_tab[i]-0x30)+tab[point]*10;
}
}
else
{
pflag ++;
}
}
else if(rev_tab[i]==',')
{
if(F_flag ==1) tab[point] = -tab[point];
point++;
pflag =0;
F_flag = 0;
}
}
if(F_flag ==1) tab[point] = -tab[point];
}
此函数的功能为将rev_tab[ ] = "-236,854,635";这个字符串解析为了:
tab[0] =-236;
tab[1] = 854;
tab[2] = 635;
边栏推荐
- 网络间通信
- 嵌入汇编-1 格式讲解
- softmax和最大熵
- VSCODE 常见问题
- Let small program development into ` tailwind jit ` era
- 解决Gradle Download缓慢的百种方法
- Qlik Sense 聚合函数及范围详解(Sum、Count、All、ToTaL、{1})
- Qlik Sense 判空详解(IsNull)
- B.1#【编程语言】—1 arm 汇编指令
- 自监督论文阅读笔记 Self-Supervised Deep Learning for Vehicle Detection in High-Resolution Satellite Imagery
猜你喜欢
随机推荐
优雅的拦截TabLayout的点击事件
Kotlin 中的泛型介绍
SAP HANA 新增一列时报错详解
Oracle count(1)、count(*)、count(列) 区别详解
MySQL 下载和安装详解
NFT租赁提案EIP-5006步入最后审核!让海外大型游戏的链改成为可能
自监督论文阅读笔记 Multi-motion and Appearance Self-Supervised Moving Object Detection
嵌入式实验二注意点
A.1#【内存管理】——1.1.2 zone: struct zone
卷积神经网络入门
The result of request.getParameter is on
Oracle null 有哪些注意事项【面试题】
EIP-5058 能否防止NFT项目方提桶跑路?
中国生物反应器行业发展现状及前景规划分析报告报告2022~2028年
opencv透视变化
建立平衡二叉树简单demo
嵌入汇编-1 格式讲解
中国人造金刚石行业投资战略规划及发展前景预测报告2022~2028年
C# Base64加密
Makefile








