?? gpio.c
字號:
//-------------------------------------------------------------------------*
// 文件名: gpio.c *
// 說 明: gpio驅動程序文件 *
//-------------------------------------------------------------------------*
#include "gpio.h" //包含gpio頭文件
//-------------------------------------------------------------------------*
//函數名: gpio_init *
//功 能: 初始化gpio *
//參 數: port:端口名 *
// index:指定端口引腳 *
// dir:引腳方向,0=輸入,1=輸出 *
// data:初始狀態,0=低電平,1=高電平 *
//返 回: 無 *
//說 明: 無 *
//-------------------------------------------------------------------------*
void gpio_init (GPIO_MemMapPtr port, int index, int dir,int data)
{
PORT_MemMapPtr p;
switch((uint32)port)
{
case 0x400FF000u:
p = PORTA_BASE_PTR;
break;
case 0x400FF040u:
p = PORTB_BASE_PTR;
break;
case 0x400FF080u:
p = PORTC_BASE_PTR;
break;
case 0x400FF0C0u:
p = PORTD_BASE_PTR;
break;
case 0x400FF100u:
p = PORTE_BASE_PTR;
break;
default:
break;
}
PORT_PCR_REG(p,index)=(0|PORT_PCR_MUX(1)); //對函數寫入參數時應使用參數原型,不能用其引用名或define名或宏名,所以才有switch這一步
if(dir == 1)//output
{
GPIO_PDDR_REG(port) |= (1<<index);
if(data == 1)//output
GPIO_PDOR_REG(port) |= (1<<index);
else
GPIO_PDOR_REG(port) &= ~(1<<index);
}
else
GPIO_PDDR_REG(port) &= ~(1<<index);
}
//-------------------------------------------------------------------------*
//函數名: gpio_ctrl *
//功 能: 設置引腳狀態 *
//參 數: port:端口名 *
// index:指定端口引腳 *
// data: 狀態,0=低電平,1=高電平 *
//返 回: 無 *
//說 明: 無 *
//-------------------------------------------------------------------------*
void gpio_ctrl (GPIO_MemMapPtr port, int index, int data)
{
if(data == 1)//output
GPIO_PDOR_REG(port) |= (1<<index);
else
GPIO_PDOR_REG(port) &= ~(1<<index);
}
//-----------------------------------------------------------------------*
//函數名: gpio_reverse *
//功 能: 改變引腳狀態 *
//參 數: port:端口名; *
// index:指定端口引腳 *
//返 回: 無 *
//說 明: 無 *
//-----------------------------------------------------------------------*
void gpio_reverse (GPIO_MemMapPtr port, int index)
{
GPIO_PDOR_REG(port) ^= (1<<index); //異或
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -