软串口使用说明
软串口就是使用软件模拟串口收发过程。数据接收和发送的过程与实际的串口类似,
现在说明一下它的使用方法。
*环境说明:ICCAVR 编译器,ATMAGE8,4MHZ 晶振。实现了 4800 波特率的单工通信。
软串口的使用说明
两个开关软串口的宏:
打开软串口———— OPEN_VMuart();
关闭软串口————CLOSE_VMuart()
在接收数据的时间需要这两个处理,先掉用 OPEN_VMuart();打开软串口。接收完一个数
据帧以后关闭软串口 CLOSE_VMuart();
在使用软串口的时候需要初始化软串口,调用 init_VMuart();在初始化以后,就可
以正常的使用发送函数了,对于接收函数,还需要调用 OPEN_VMuart();打开软串口。
发送函数:
发送首先要把 gVmRs232Tx 置 1.
1、 发送一个字节:void rs_send_byte(uchar SendByte) ;
2、 发送一个字符串:void rs_send_string(uchar *s) ;
发送函数以及包含了软串口的开关处理:也就是说,每发送一个字节软串口开关一次。
接收数据:
接收首先要把 gVmRs232Tx 置 0
只要初始化软串口,init_VMuart();同时打开软串口:OPEN_VMuart();就可以以
4800 波特 率接 收数 据了 。接 收的 数据 会存 放在 一个 由数 组表 示的 环型 缓冲 中— —
vmRS232Buf[50];
通过判断收到数据的指针 inRS232 是否等于尾指针 outRS232,就可以判断是否收到数据。
通过读 vmRS232Buf[50];就可以得到收到的数据
应用中举例:(主函数)
Demo1 发送数据
void main(void)
{
init_VMuart();
gVmRs232Tx = 1;
rs_send_string(“hello wrold”) ;
}
Demo2 接收数据
void main(void)
{
init_VMuart();
gVmRs232Tx = 0;
while(1)
{
If(outRS232 != inRS232)
{
vmRS232Buf[outRS232++];
if(outRS232 >= 50) // 接收、发送都是环型缓冲区