单片机串口收发字符和数字的函数
来源:互联网 发布:淘宝自动好评是多久 编辑:程序博客网 时间:2024/06/05 06:07
/************************************************
功能:将整形转换为ascii码字符串
示例:dat = 12345 buffer[10]
转换后
buffer[0] = '1'
buffer[1] = '2'
...
buffer[4] = '5'
buffer[5] = '\n'
**********************************************/
void DtoA(unsigned long dat, unsigned char* buffer)
{
unsigned long tmp = dat;
char length = 0;
while(tmp != 0)//求出数字的实际长度
{
tmp = tmp/10;
length++;
}
buffer[length] = '\0';//长度数为字符串截止位
length--;
while(length >= 0)//数字的低位放入数组的高位
{
tmp = dat%10;
buffer[length--] = 0x30|tmp;
dat = dat/10;
}
}
/****************************************************
功能:将ascii码字符串(非ascii也可)转换成对应数字
unsigned char code date[] = "1234567"; -> 返回 1234567
unsigned char code date_neg[] = "-1234567"; -> 返回 -1234567
****************************************************/
long mi(unsigned char dat, unsigned char mi)
{
unsigned char i;
long sum = 1;
for(i=0; i<mi; i++)
{
sum = sum * dat;
}
return sum;
}
long AtoD(unsigned char* buffer)
{
long dat = 0, tmp = 0,k;
unsigned char i;
char j = 0;
i = strlen(buffer);
if(buffer[0] == '-')
{
j = 1;
}
for(; j<i; j++)
{
tmp = buffer[j]&0x0f;//如果原数组中存放的是ascii码,直接将其转换为数字
k = mi(10,i-j-1);
tmp = k * tmp;
dat += tmp;
}
if(buffer[0] == '-')
{
return -dat;
}
return dat;
}
void SendString(unsigned char* String)
{
int i=0;
while(String[i] != '\0')
{
SendData(String[i]);
i++;
}
}
void SendDig(long dat)
{
char buffer[36];
DtoA(dat, buffer);
SendString(buffer);
}
- 单片机串口收发字符和数字的函数
- 单片机串口收发数据
- 51单片机实现串口收发
- 51单片机(AT89C52)串口收发程序
- 字符和数字的转换函数
- C#中使用seriport和单片机进行串口长数据收发不全,解决办法
- MSP430单片机USART串口发送字符和字符串
- 串口收发字符转换为整数
- 字符函数、数字函数和日期函数
- LCD1602显示单片机与PC机间串口收发数据
- 一个串口的收发器;
- C# 串口收发的 类
- 基于控件的串口收发
- 串口异步收发的实现
- 关于单片机的串口
- 51单片机的串口
- 单片机的串口通信协议
- 单片机串口接收发送函数
- 数据结构 -- 单链表创建之头插法和尾插法
- iOS7适配坐标问题
- JAVA:函数传参
- [OS5完美版] 产品背后的故事——百变主题篇
- Java数组及其内存分配
- 单片机串口收发字符和数字的函数
- 我是这么利用数据---对需求说不
- ML二:NNSearch数据结构--二叉树
- 整体刷新和局部刷新frameset窗口
- Anagrams
- 《java解惑》:数值表达式
- android 照相机开发
- java中的char类型和Unicode编码
- 记一次内存暴涨之二分法