查看: 357|回复: 15

[GD32F190方案分享] GD32F190寄存器方式

[复制链接]

16

主题

0

好友

511

积分

举人

Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-5-22 14:36:24 |显示全部楼层
    本帖最后由 糖悦之果飞 于 2016-5-23 17:28 编辑

    几天的GD32学习,都是用库函数写程序,虽然编写很便利,但是整个代码变得臃肿.这里我准备编写寄存器方式的代码.
    先给个IO的初始代码:


    RCC->AHBCCR |= RCC_AHBCCR_PBEN;//时钟初始

    GPIOB->OSPD |= 0xffffffff;//上拉­

    GPIOB->PUPD |= 0x00555500;//IO速度
    GPIOB->OMODE |= 0x0700;   //输出类型
    GPIOB->CTLR |= 0x00555500;//输出模式
            
    GPIOB->DOR |= 0x00000000; //输出内容

    GPIOB->BOR |= 0x0400;//IO输出1
    GPIOB->BCR |= 0x0400;//IO输出0
    回复

    使用道具 举报

    1

    主题

    1

    好友

    2689

    积分

    进士

    Rank: 5Rank: 5

  • TA的每日心情
    奋斗
    昨天 23:23
  • 签到天数: 646 天

    [LV.9]以坛为家II

    发表于 2016-5-22 22:31:19 |显示全部楼层
    下载下来,参考和学习
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-5-29 23:09:09 |显示全部楼层
    串口寄存器方式初始化:
    void UsartInit(void)
    {
              RCC->AHBCCR |= RCC_AHBCCR_PAEN;//IO
        RCC->APB1CCR |= RCC_APB1PERIPH_USART2;//USARTCLK
                    GPIOA->AFS[0] = 0x1100;//IO AFS 2,3
           
              GPIOA->OSPD |= 0xffffffff;//speed
              GPIOA->PUPD |= 0x00555000;//up
              GPIOA->OMODE |= 0x0700;   //输出类型
              GPIOA->CTLR |= 0x005500a0;//输出模式
              GPIOA->DOR |= 0x00000000; //输出内容
              
              USART2->BRR = 0x000016c0;//9600@28MHZ
              USART2->CTLR1 |= 0x00001000;
              USART2->CTLR2 &= ~0x00003000;
              USART2->CTLR3 &= ~0x00002000;
              USART2->CTLR1 |= 0x00000400;//PCEN
              USART2->CTLR1 |= 0x000000a0;
              USART2->CTLR1 |= USART_CTLR1_UEN;
    }
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-5-29 23:10:46 |显示全部楼层
              RCC->APB1CCR |= RCC_APB1PERIPH_TIMER6;
           
               //RCC->APB1RCR |= RCC_APB1PERIPH_TIMER6RST;
               //RCC->APB1RCR &= ~RCC_APB1PERIPH_TIMER6RST;
              TIMER6->STR = (uint16_t)~TIMER_INT_UPDATE;
              TIMER6->DIE |= TIMER_INT_UPDATE;
            TIMER6->CTLR1 |= TIMER_CTLR1_CNTE;
               TIMER6->CTLR1 = 0x0000;//控制方式
               //TIMER6->CTLR2 = 0x0020;//控制输出
               TIMER6->EVG = 0x0000;  //事件触发
               TIMER6->PSC = 0x0000;   //预分频数
               TIMER6->CARL = 0x007f; //重载
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-5-29 23:11:16 |显示全部楼层
    定时器初始化寄存器
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-5-29 23:12:41 |显示全部楼层
    void EXTI4_15_IRQHandler(void)
    {
        if(((EXTI->PD & EXTI_LINE6) != (uint32_t)RESET) && ((EXTI->IER & EXTI_LINE6) != (uint32_t)RESET)){
                                   
                               //GPIOB->BOR |= 0x0100;                          
        }
                    EXTI->PD = EXTI_LINE6;
                    if(((EXTI->PD & EXTI_LINE7) != (uint32_t)RESET) && ((EXTI->IER & EXTI_LINE7) != (uint32_t)RESET)){
                                                 
                              //GPIOB->BOR |= 0x0200;
        }
                    EXTI->PD = EXTI_LINE7;
    }
    外部中断寄存器方式
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-6-6 23:19:16 |显示全部楼层
    继续讨论寄存器方式
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-6-6 23:22:40 |显示全部楼层
    void UsartInit(void)
    {
           
              RCC->AHBCCR |= RCC_AHBCCR_PAEN;//IO
        RCC->APB1CCR |= RCC_APB1PERIPH_USART2;//USARTCLK
                    GPIOA->AFS[0] = 0x1100;//IO AFS 2,3
           
              GPIOA->OSPD |= 0xffffffff;//speed
              GPIOA->PUPD |= 0x00555000;//up
              GPIOA->OMODE |= 0x0700;   //Êä³öÀàÐÍ
              GPIOA->CTLR |= 0x005500a0;//Êä³öģʽ
              GPIOA->DOR |= 0x00000000; //Êä³öÄÚÈÝ
              
              USART2->BRR = 0x000016c0;//9600@28MHZ
              USART2->CTLR1 |= 0x00001000;
              USART2->CTLR2 &= ~0x00003000;
              USART2->CTLR3 &= ~0x00002000;
              USART2->CTLR1 |= 0x00000400;//PCEN
              USART2->CTLR1 |= 0x000000a0;
              USART2->CTLR1 |= USART_CTLR1_UEN;
           
                    NVIC_SetPriorityGrouping(0x00000000);//ÖжÏÓÅÏȼ¶
                    NVIC_EnableIRQ(USART2_IRQn);//ÖжÏ
    }
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-6-6 23:23:14 |显示全部楼层
    void USART2_IRQHandler(void)
    {
        if ((USART2->STR & USART_FLAG_RBNE) != (uint16_t)RESET)
        {
            USART2->SCR = USART_FLAG_RBNE;
        }
                    if ((USART2->STR & USART_FLAG_TBE) != (uint16_t)RESET)
        {
            USART2->SCR = USART_FLAG_TBE;
                              USART2->TDTR = (uint32_t)txbuf[txpt];
                              txpt = txpt + 1;
                              txpt &= 0x1f;
        }
    }
    回复

    使用道具 举报

    16

    主题

    0

    好友

    511

    积分

    举人

    Rank: 4

  • TA的每日心情
    奋斗
    2016-7-12 22:55
  • 签到天数: 13 天

    [LV.3]偶尔看看II

    发表于 2016-6-6 23:23:50 |显示全部楼层
    void TIMER6_DAC_IRQHandler(void)
    {
        if(((TIMER6->STR & TIMER_INT_UPDATE) == (uint16_t)SET) && ((TIMER6->DIE & TIMER_INT_UPDATE) == (uint16_t)SET)){
                       TIMER6->STR = (uint16_t)~TIMER_INT_UPDATE;
                             tim[0] = tim[0] + 1;
                           
                    }
    }       
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    关闭

    站长推荐上一条 /5 下一条


    手机版|爱板网 |网站地图  

    GMT+8, 2016-12-10 09:09 , Processed in 0.115719 second(s), 17 queries , Memcache On.

    苏公网安备 32059002001056号

    Powered by Discuz!

    回顶部