⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 lld_gpio.c

📁 本程序为ST公司开发的源代码
💻 C
📖 第 1 页 / 共 3 页
字号:
*                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid LLD_GPIO_SetAFODOutput(GPIO_ID id, tU8 u8Pin){   /* The Output configuration is Pc0=0, Pc1=1, Pc2=1 */   tU16 u16Buffer;   if( GPIO_A == id )   {      u16Buffer = rd16_reg(GpioA,Pc0);      wr16_reg(GpioA,Pc0,u16Buffer & ~(1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc1);      wr16_reg(GpioA,Pc1,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc2);      wr16_reg(GpioA,Pc2,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */   }   if( GPIO_B == id )   {      u16Buffer = rd16_reg(GpioB,Pc0);      wr16_reg(GpioB,Pc0,u16Buffer & ~(1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc1);      wr16_reg(GpioB,Pc1,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc2);      wr16_reg(GpioB,Pc2,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */   }}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      LLD_GPIO_SetInput                                                **                                                                       ** DESCRIPTION                                                           **                                                                       **      Program the u8Pin of the id GPIO port as input.                  **                                                                       ** CALLS                                                                 **                                                                       **      LLD macros                                                       **                                                                       ** INPUTS                                                                **                                                                       **      GPIO_ID id: GPIO identificator                                   **      tU8 u8in: Pin number                                             **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid LLD_GPIO_SetInput(GPIO_ID id, tU8 u8Pin){   /* The Input configuration is Pc0=1, Pc1=0, Pc2=0 */   tU16 u16Buffer;   if( GPIO_A == id )   {      u16Buffer = rd16_reg(GpioA,Pc0);      wr16_reg(GpioA,Pc0,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc1);      wr16_reg(GpioA,Pc1,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc2);      wr16_reg(GpioA,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }   if( GPIO_B == id )   {      u16Buffer = rd16_reg(GpioB,Pc0);      wr16_reg(GpioB,Pc0,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc1);      wr16_reg(GpioB,Pc1,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc2);      wr16_reg(GpioB,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      LLD_GPIO_SetInput2                                               **                                                                       ** DESCRIPTION                                                           **                                                                       **      Program the u8Pin of the id GPIO port as input, variant 010      **                                                                       ** CALLS                                                                 **                                                                       **      LLD macros                                                       **                                                                       ** INPUTS                                                                **                                                                       **      GPIO_ID id: GPIO identificator                                   **      tU8 u8in: Pin number                                             **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid LLD_GPIO_SetInput2(GPIO_ID id, tU8 u8Pin){   /* The Input configuration is Pc0=0, Pc1=1, Pc2=0 */   tU16 u16Buffer;   if( GPIO_A == id )   {      u16Buffer = rd16_reg(GpioA,Pc0);      wr16_reg(GpioA,Pc0,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc1);      wr16_reg(GpioA,Pc1,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc2);      wr16_reg(GpioA,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }   if( GPIO_B == id )   {      u16Buffer = rd16_reg(GpioB,Pc0);      wr16_reg(GpioB,Pc0,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc1);      wr16_reg(GpioB,Pc1,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc2);      wr16_reg(GpioB,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      LLD_GPIO_SetBiDirect                                             **                                                                       ** DESCRIPTION                                                           **                                                                       **      Program the u8Pin of the id GPIO port as bidirectional.          **                                                                       ** CALLS                                                                 **                                                                       **      LLD macros                                                       **                                                                       ** INPUTS                                                                **                                                                       **      GPIO_ID id: GPIO identificator                                   **      tU8 u8in: Pin number                                             **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid LLD_GPIO_SetBiDirect(GPIO_ID id, tU8 u8Pin){   /* The Input configuration is Pc0=1, Pc1=1, Pc2=0 */   tU16 u16Buffer;   if( GPIO_A == id )   {      u16Buffer = rd16_reg(GpioA,Pc0);      wr16_reg(GpioA,Pc0,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc1);      wr16_reg(GpioA,Pc1,u16Buffer | (1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc2);      wr16_reg(GpioA,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }   if( GPIO_B == id )   {      u16Buffer = rd16_reg(GpioB,Pc0);      wr16_reg(GpioB,Pc0,u16Buffer | (1<<u8Pin)); /* set bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc1);      wr16_reg(GpioB,Pc1,u16Buffer | (1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc2);      wr16_reg(GpioB,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }}/*************************************************************************                                                                       ** FUNCTIONS                                                             **                                                                       **      LLD_GPIO_SetHiZ                                                  **                                                                       ** DESCRIPTION                                                           **                                                                       **      Program the u8Pin of the id GPIO port as hi Z.                   **                                                                       ** CALLS                                                                 **                                                                       **      LLD macros                                                       **                                                                       ** INPUTS                                                                **                                                                       **      GPIO_ID id: GPIO identificator                                   **      tU8 u8in: Pin number                                             **                                                                       ** OUTPUTS                                                               **                                                                       **      None                                                             **                                                                       *************************************************************************/tVoid LLD_GPIO_SetHiZ(GPIO_ID id, tU8 u8Pin){   /* The Tristate configuration is Pc0=0, Pc1=0, Pc2=0 */   tU16 u16Buffer;   if( GPIO_A == id )   {      u16Buffer = rd16_reg(GpioA,Pc0);      wr16_reg(GpioA,Pc0,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc1);      wr16_reg(GpioA,Pc1,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioA,Pc2);      wr16_reg(GpioA,Pc2,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */   }   if( GPIO_B == id )   {      u16Buffer = rd16_reg(GpioB,Pc0);      wr16_reg(GpioB,Pc0,u16Buffer & ~(1<<u8Pin)); /* clear bit u8Pin. */      u16Buffer = rd16_reg(GpioB,Pc1);

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -