📄 main.c
字号:
/****************************************Copyright (c)****************************************************
** Guangzhou ZHIYUAN electronics Co.,LTD.
**
** http://www.embedtools.com
**
**--------------File Info---------------------------------------------------------------------------------
** File name: main.c
** Last modified Date: 2004-09-16
** Last Version: 1.0
** Descriptions: The main() function example template
**
**--------------------------------------------------------------------------------------------------------
** Created by: Chenmingji
** Created date: 2004-09-16
** Version: 1.0
** Descriptions: The original version
**
**--------------------------------------------------------------------------------------------------------
** Modified by: Li Baihua
** Modified date: 2008-07-03
** Version: v1.01
** Descriptions: GPRS
**
*********************************************************************************************************/
#include "main.h"
#include "config.h"
/*********************************************************************************************************
** Function name: DelayNS
** Descriptions: 延时函数
** input parameters: uiDly 值越大,延时时间越长
** output parameters: Nnoe
** Returned value: Nnoe
*********************************************************************************************************/
void DelayNS (uint32 uiDly)
{
uint32 i;
for (; uiDly > 0; uiDly--){
for(i = 0; i < 50000; i++);
}
}
/*********************************************************************************************************
** Function name: main
** Descriptions: 主函数
** input parameters: Nnoe
** output parameters: Nnoe
** Returned value: Nnoe
*********************************************************************************************************/
int main (void)
{
uint8 i;
uint8 TestDat[10]={'h', 'e', 'l', 'l', 'o', 'w', 'o', 'r', 'l', 'd'};
uint8 RecDat[10];
PCONP |= 1 << 4; /* 打开UART1 */
PINSEL7 = (PINSEL7 & (~0x0F)) | 0x0F; /* 管脚连接P3.16-TXD1,P3.17-RXD1*/
U1LCR = 0x80; /* DLAB=1,允许设置波特率 */
U1DLM = ((Fpclk/16)/9600)/256; /* 设置分频值 */
U1DLL = ((Fpclk/16)/9600)%256;
U1LCR = 0x03; /* 令DLAB位为0 */
U1FCR &= ~0x07; /* 禁用FIFO */
U1IER &= ~0x07; /* 禁止UART产生中断 */
while(1)
{
for (i=0;i<10;i++){ /* 发送十字节数据 */
U1THR = TestDat[i]; /* 发送一个字节 */
while ((U1LSR & 0x40) == 0); /* 等待数据发送完毕 */
}
for (i=0;i<10;i++){ /* 接收十字节数据 */
while ((U1LSR & 0x01) == 0); /* 等待接受标志 */
RecDat[i] = (uint8)U1RBR; /* 接收一个字节 */
}
for (i=0;i<10;i++){ /* 比较收发字节是否相等 */
if(RecDat[i] != TestDat[i]){ /* 如果接受字节和发送字节不等… */
BUZZER_Set();
DelayNS(30);
BUZZER_Clr();
DelayNS(15);
break; /* ……则蜂鸣一次后重新发送 */
}
}
if(i<10)
continue; /* 接收出错重新发送 */
BUZZER_Set(); /* BEEP蜂鸣表示收发成功 */
DelayNS(15);
BUZZER_Clr();
DelayNS(15);
BUZZER_Set();
DelayNS(15);
BUZZER_Clr();
DelayNS(15);
DelayNS(300); /* 延时后重新开始 */
}
return 0;
}
/*********************************************************************************************************
END FILE
*********************************************************************************************************/
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -