SWM341_port.c 2.4 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950
  1. /******************************************************************************************************************************************
  2. * 文件名称: SWM341_port.c
  3. * 功能说明: SWM341单片机的端口引脚功能选择库函数
  4. * 技术支持: http://www.synwit.com.cn/e/tool/gbook/?bid=1
  5. * 注意事项:
  6. * 版本日期: V1.0.0 2016年1月30日
  7. * 升级记录:
  8. *
  9. *
  10. *******************************************************************************************************************************************
  11. * @attention
  12. *
  13. * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS WITH CODING INFORMATION
  14. * REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE TIME. AS A RESULT, SYNWIT SHALL NOT BE HELD LIABLE
  15. * FOR ANY DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING FROM THE CONTENT
  16. * OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE CODING INFORMATION CONTAINED HEREIN IN CONN-
  17. * -ECTION WITH THEIR PRODUCTS.
  18. *
  19. * COPYRIGHT 2012 Synwit Technology
  20. *******************************************************************************************************************************************/
  21. #include "SWM341.h"
  22. #include "SWM341_port.h"
  23. /******************************************************************************************************************************************
  24. * 函数名称: PORT_Init()
  25. * 功能说明: 端口引脚功能选择
  26. * 输 入: PORT_TypeDef * PORTx 指定PORT端口,有效值包括PORTA、PORTB、PORTC、PORTD、PORTE、PORTM、PORTN
  27. * uint32_t n 指定PORT引脚,有效值包括PIN0、PIN1、PIN2、... ... PIN14、PIN15
  28. * uint32_t func 指定端口引脚要设定的功能,其可取值见"SWM201_port.h"文件
  29. * uint32_t digit_in_en 数字输入使能
  30. * 输 出: 无
  31. * 注意事项: 无
  32. ******************************************************************************************************************************************/
  33. void PORT_Init(PORT_TypeDef * PORTx, uint32_t n, uint32_t func, uint32_t digit_in_en)
  34. {
  35. if(n < PIN8)
  36. {
  37. PORTx->FUNC0 &= ~(0x0F << (n*4));
  38. PORTx->FUNC0 |= (func << (n*4));
  39. }
  40. else
  41. {
  42. PORTx->FUNC1 &= ~(0x0F << ((n-8)*4));
  43. PORTx->FUNC1 |= (func << ((n-8)*4));
  44. }
  45. if(digit_in_en) PORTx->INEN |= (1 << n);
  46. else PORTx->INEN &= ~(1 << n);
  47. }