发送字符串函数怎么写

1.C51单片机发送字符串程序怎么写#include<reg52.h>; //包含头文件,
#include"delay.h"
/*------------------------------------------------
函数声明
------------------------------------------------*/
void SendStr(unsigned char *s);
/*------------------------------------------------
串口初始化
------------------------------------------------*/
void InitUART (void)
{
SCON = 0x50; // SCON: 模式 1, 8-bit UART,使能接收
TMOD |= 0x20; // TMOD: timer 1, mode 2, 8-bit 重装
TH1 = 0xFD; // TH1: 重装值 9600 波特率 晶振 11.0592MHz
TR1 = 1; // TR1: timer 1 打开
EA = 1; //打开总中断
//ES = 1; //打开串口中断
}
/*------------------------------------------------
主函数
------------------------------------------------*/
void main (void)
{
InitUART();
while (1)
{
SendStr("UART test!");
DelayMs(240);//延时循环发送
DelayMs(240);
}
}
/*------------------------------------------------
发送一个字节
------------------------------------------------*/
void SendByte(unsigned char dat)
{
SBUF = dat;
while(!TI);
TI = 0;
}
/*------------------------------------------------
发送一个字符串
------------------------------------------------*/
void SendStr(unsigned char *s)
{
while(*s!='\0')// \0 表示字符串结束标志,
//通过检测是否字符串末尾
{
SendByte(*s);
s++;
}
}
2.sendmessage这个发送消息的函数如何发送字符串首先说怎么发送,然后说怎么接收:
自己定义一个消息,加上一个消息响应函数 。然后用SendMessage把字符串的地址发过去 。
比如VC环境:
在stdafx.h中,
#define MY_MESSAGE USER+1
定义一个函数用来发送,可以是定时器,可以是按钮 。
void send()
【发送字符串函数怎么写】{
CString str;
str = "12345";
::SendMessage(hWnd,MY_MESSAGE ,(WPARAM)&str);
}
在你的类头文件.h中:
afx_msg void MyFunction(WPARAM wParam,LPARAM lParam);
在.cpp中
BEGIN_MESSAGE_MAP下面加入:
ON_MESSAGE(MY_MESSAGE ,MyFunction)
在后面加上你的函数体
void 你的类名::MyFunction(WPARAM wParam,LPARAM lParam)
{
//如果你发送的字符串的地址在WPARAM中,则用WPARAM来接收
CString* pStr = (CString*)wParam.
AfxMessageBox(*pStr);
}
你要注意的是:这只能适合SendMessage,如果你要使用PostMessage,就要把你发送的字符串设定为类的成员,或者全局的,不能是临时变量 。因为SendMessage是要让消息响应函数执行完了才会返回,所以str是不会被系统释放的 。PostMessage是直接返回,于是你传了一个str的地址过去,但是消息响应函数执行的时候,str已经被删除了,这个时候的地址是一个不可知的内容,程序就会发生内存泄露,所以还是推荐你定义一个字符串专门用来发送 。
3.字符串 自定义函数怎么写#include <stdio.h>
#include <string.h>
///字符串是不方便直接return的,
///常用方法是输入串和输出串都传入函数,
///在函数里给输出串赋值 。
void go(const char* input, const char* output)
{
int i = 0;
if (input && output)
{
while (input[i])
{
if (input[i] >= 'a' && input[i] <= 'z')
{
output[i] = input[i] - 'a' + 'A';
}
else
{
output[i] = input[i];
}
}
}
}
int main()
{
const int len = 16;
char a[len] = "abcde";
char b[len];
go(a, b);