📄 gpio.c
字号:
/****************************************************************
* 文件名 GPIO.c
* 作者 wpj
* 时间 2008.4.5
* 版本 1.0
*
* 修改时间
*
*
*
************************************************************************/
#include "GPIO.h"
#include "wait.h"
#include "SCI.h"
#include <string.h>
#include "main.h"
extern UINT8 SciRxBuf[SCI_RX_BUF_TC];
extern UINT8 volatile SciRxPtr;
//extern UINT8 volatile SciRxLen;
extern UINT8 SciTxBuf[SCI_TX_BUF_TC];
extern UINT8 volatile SciTxPtr;
extern UINT8 volatile SciTxLen;
extern UINT8 volatile SciTxFlag;
extern UINT8 volatile RxTimeoutFlag; //接收超时包完成
/**********************************************************
* 函数名: GPIOConfigInit
* 作者: wpj
* 时间: 2008.4.5
* 版本号: 1.0
* 功能: 全部全局变量初始化
* 修改时间
*
*************************************************************/
void GPIOConfigInit(void)
{
//将不使用的GPIO设为输出,使其功耗减小
//LED10ON();//TEST
//启动tc35i测试,包含emergecy,插着烧写端口就好使
PTADD = 0xFF;
DelayMS(3000);
PTAD = 0x17;
DelayMS(10);
PTAD = 0x37;
DelayMS(12);
PTAD = 0x17;
DelayMS(110);
PTAD = 0x37;
DelayMS(300);
PTAD = 0x77;//pc串口发关闭,串口收是一直打开的
//PTAD = 0xF7; //pc串口发打开,串口收是一直打开的
//试试最后把两个脚设置成高阻
PTADD =0x9F;
PTAPE_PTAPE5 = 0;
PTAPE_PTAPE6 = 0;
PTBDD = 0xFF;
PTCDD = 0xFF;
PTDDD = 0xFF;
PTEDD = 0xFF;
PTGDD = 0xFE;
}
/**********************************************************
* 函数名: LED10ON
* 作者: wpj
* 时间: 2007.4.5
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void LED10ON(void)
{
LED10_GPIO = 0;
}
/**********************************************************
* 函数名: LED10OFF
* 作者: wpj
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void LED10OFF(void)
{
LED10_GPIO = 1;
}
/**********************************************************
* 函数名: LED9ON
* 作者: wpj
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void LED9ON(void)
{
LED9_GPIO = 0;
}
/**********************************************************
* 函数名: LED9OFF
* 作者: zgq
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void LED9OFF(void)
{
LED9_GPIO = 1;
}
/**********************************************************
* 函数名: TC35ON
* 作者: zgq
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void TC35ON(void)
{
UINT8 i, flag;
(void)strcpy(SciTxBuf,"AT+CFUN=1\r");
//SCI1C2_TCIE = 0;
SciTxLen = 10;
SciRxPtr = 0;
UARTTransmitt(); //串口发送
//等待一组数据收完
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
do
{
flag=1;
for(i=0;i<SCI_RX_BUF_TC;i++)
{
if((SciRxBuf[i]=='O')&&(SciRxBuf[i+1]=='K'))
{
flag=0;
}
}
}while(flag);
}
/**********************************************************
* 函数名: TC35OFF
* 作者: zgq
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void TC35OFF(void)
{
UINT8 i, flag;
(void)strcpy(SciTxBuf,"AT+CFUN=5\r");
//SCI1C2_TCIE = 0;
SciTxLen = 10;
SciRxPtr = 0;
UARTTransmitt(); //串口发送
//等待一组数据收完
while(SciTxFlag==TRANSMITT_ING);//等待上一次发送完毕
while(RxTimeoutFlag < 3);
RxTimeoutFlag=0;
do
{
flag=1;
for(i=0;i<SCI_RX_BUF_TC;i++)
{
if((SciRxBuf[i]=='O')&&(SciRxBuf[i+1]=='K'))
{
flag=0;
}
}
}while(flag);
}
/**********************************************************
* 函数名: MAXtON
* 作者: zgq
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void MAXtON(void)
{
PTAD=(PTAD|0x80);
}
/**********************************************************
* 函数名: MAXtOFF
* 作者: zgq
* 时间: 2007.12.7
* 版本号: 1.0
* 功能: 转换485芯片至发送态
* 修改时间
*
*************************************************************/
void MAXtOFF(void)
{
PTAD=(PTAD&0x7F);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -