华大HC32F460跑马灯实验

1.GPIO编程基础

1.1 GPIO编程定义说明

      GPIO(General Purpose Input Output)官方说法叫“通用输入输出”,一般一组端口的写法为Px,在HC32F46微控制器100脚芯片中,x=A~E,H,如PA表示PortA端口组。在编程中被定义如下。

typedef enum en_port
{
    PortA = 0,      ///< port group A
    PortB = 1,      ///< port group B
    PortC = 2,      ///< port group C
    PortD = 3,      ///< port group D
    PortE = 4,      ///< port group E
    PortH = 5,      ///< port group H
}en_port_t;

       每组端口一般为16个I/O引脚(有些端口不足16个,例如HC32F460微控制器100脚芯片H组端口只有3个I/O引脚),每个引脚用Pxy表示,其中x= A~E,H, y=0~15;引脚在编程中定义如下。

typedef enum en_pin
{
    Pin00 = (1 <<  0), 	///< Pin index 00 of each port group
    Pin01 = (1 <<  1),		///< Pin index 01 of each port group
    Pin02 = (1 <<  2),		///< Pin index 02 of each port group
    Pin03 = (1 <<  3),		///< Pin index 03 of each port group
    Pin04 = (1 <<  4),		///< Pin index 04 of each port group
    Pin05 = (1 <<  5),		///< Pin index 05 of each port group
    Pin06 = (1 <<  6),		///< Pin index 06 of each port group
    Pin07 = (1 <<  7), 	///< Pin index 07 of each port group
    Pin08 = (1 <<  8),		///< Pin index 08 of each port group
    Pin09 = (1 << 9,		///< Pin index 09 of each port group
    Pin10 = (1 << 10,		///< Pin index 10 of each port group
    Pin11 = (1 << 11,		///< Pin index 11 of each port group
    Pin12 = (1 << 12,		///< Pin index 12 of each port group
    Pin13 = (1 << 13,		///< Pin index 13 of each port group
    Pin14 = (1 << 14,		///< Pin index 14 of each port group
    Pin15 = (1 << 15,		///< Pin index 15 of each port group
    PinAll= 0Xffff,			///< All pins selected
}en_pin_t;

       GPIO除作为普通输入输出之外,还有很多复用功能,例如作为usart串口的数据收发信号线,外部中断功能等。在编程中对每个复用功能进行了功能号的定义,可以在I/O口初始化的时候使用(默认为GPIO)。

typedef enum en_port_func
{
    Func_Gpio       = 0u, 	 ///< function set to gpio
    Func_Fcmref     = 1u, 	 ///< function set to fcm reference
    Func_Rtcout     = 1u,  	 ///< function set to rtc output
    Func_Vcout      = 1u, 	 ///< function set to vc output
    Func_Adtrg      = 1u,	 ///< function set to adc trigger
    Func_Mclkout    = 1u, 	 ///< function set to mclk output
    Func_Tim4       = 2u,	 ///< function set to timer4
    Func_Tim6       = 3u, 	 ///< function set to timer6
    Func_Tima0      = 4u, 	 ///< function set to timerA
    Func_Tima1      = 5u,      ///< function set to timerA
    Func_Tima2      = 6u,      ///< function set to timerA
    Func_Emb        = 6u,     ///< function set to emb
    Func_Usart_Ck   = 7u,      ///< function set to usart clk
    Func_Spi_Nss    = 7u,      ///< function set to spi nss
    Func_Qspi       = 7u,     ///< function set to qspi
    Func_Key        = 8u,     ///< function set to key
    Func_Sdio       = 9u,     ///< function set to sdio
    Func_I2s        = 10u,    ///< function set to i2s
    Func_UsbF       = 10u,    ///< function set to usb full speed
    Func_Evnpt      = 14u,    ///< function set to event port
    Func_Eventout   = 15u,    ///< function set to event out
    Func_Usart1_Tx  = 32u,    ///< function set to usart tx of ch.1
    Func_Usart3_Tx  = 32u,    ///< function set to usart tx of ch.3
    Func_Usart1_Rx  = 33u,    ///< function set to usart rx of ch.1
    Func_Usart3_Rx  = 33u,    ///< function set to usart rx of ch.3
    Func_Usart1_Rts = 34u, 	 ///< function set to usart rts of ch.1
    Func_Usart3_Rts = 34u,    ///< function set to usart rts of ch.3
    Func_Usart1_Cts = 35u,    ///< function set to usart cts of ch.1
    Func_Usart3_Cts = 35u,    ///< function set to usart cts of ch.3
    Func_Usart2_Tx  = 36u,    ///< function set to usart tx of ch.2
    Func_Usart4_Tx  = 36u,    ///< function set to usart tx of ch.4
    Func_Usart2_Rx  = 37u,    ///< function set to usart rx of ch.2
    Func_Usart4_Rx  = 37u,    ///< function set to usart rx of ch.4
    Func_Usart
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值