2984|2

3

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

USART2寄存器操作没有执行? [复制链接]


选用PA2为输出Tx,设置USART2->BBR,波特率设为9600,换算为16进制传入,

但是烧进去发现没有数据输出,调试的时候发现,USART2->BBR |= 0X0EA6 这句并没有作用




寄存器里的值并没有改变。

但是其他的寄存器操作语句又可以正常执行





我用的是nucleo L053R8 求大神指点!!o(≧v≦)o~~


























此帖出自stm32/stm8论坛
点赞 关注
 

回复
举报

3

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
#include "stdio.h"
//#include "main.h"
#include "stm32l0xx.h"
unsigned int  TempDat=0;
unsigned int        TempCount=0;
unsigned int  Delay=0;
unsigned char Dat=0;
unsigned char tdat;
unsigned int  TransFlag=0;  //not transformed-0   else transformed;
unsigned int  ReadFlashStartAddr =0x08002000;
unsigned int  WriteFlashStartAddr=0x08002000;
//ADC_HandleTypeDef             AdcHandle;
//ADC_ChannelConfTypeDef        sConfig;
//uint32_t                      aResultDMA;
//static void SystemClock_Config(void);
//static void Error_Handler(void);
//HAL_Init();

//USART
void UsartInit(void)
{
        //PA2-TX         PA3-RX   AF4
        RCC->IOPENR    |=   0x01;   //a′ò¿a
        GPIOA->MODER   |=   0X01<<5; //·t¸′óÃ
        GPIOA->MODER   &= ~(0x01<<4);
        GPIOA->MODER   |=   0X01<<7;
        GPIOA->MODER   &= ~(0x01<<6);
        GPIOA->AFR[0]  |=0x00004400;  //¸′óÃÎaTX£¬RX£¿
       
        RCC->APB1RSTR  |= 0x00020000;  //ÖØÖÃusart2
        RCC->CCIPR     |= 0X00000004;   //Ïμí3ê±ÖóéèÎauasrtê±Öó£¬íaéèapbμÄ36M
        RCC->APB1ENR   |= 0x00020000;  //uarst2ê±Öó′ò¿a
        USART2->BRR |= 0x0EA6;//D′2»½øè¥ 3750/16;//96002¨ìØÂê  234.375 6  20970/96;
        USART2->CR1                 |= 0X0000000F;//ue uesm te re D′2»½ø襡?
}

void Usart2Tx(unsigned char Dat)
{
        //if((USART2->ISR&0x00000040) == 0x00000040)
        while((USART2->ISR&0x00000040) != 0x00000040){}//μètcÖÃò»
        //{
                USART2->TDR  =Dat;
                USART2->ICR |= 0x00000040;//tccp D′èëò» ½«tcÖÃáã
        //}
}

//ADC
void ADC_Init(void)
{
        RCC->IOPENR         |= 0x01;               //GPIOA CLOCK ENABLE       
        GPIOA->MODER  |= 0X0300;                         //PA4-ANALOG  A2½Å£¬adcin4
        RCC->APB2ENR         |= 0x00000201;    //¿aadc걼䣬System configuration controller clock£¿£¿
        ADC->CCR                        |= (0X01<<25)|(0X01<<18|0X01<<19|0X01<<21);//25ûD′½ø襣¬μíÆμÄ£ê½2.8M£¬ê±ÖóÆμÂê,256·ÖÆμ
        ADC1->CHSELR        |= 0x00000010;  //í¨μà4êÇ×a»»
        ADC1->CFGR2   |= 0x80000000;//adcê±Öó í¬2½ pclk/4£¬9M
        ADC1->CFGR1          |= (0X01<<14)|(0X01<<13)|(0x02<<3);//×a»»·Ö±æÂê8bit£¬á¬DøÄ£ê½ μè′y×a»»Ä£ê½,ĬèÏóò¶ÔÆëÔúμíλ
        ADC1->SMPR                |= 0X01;//2éÑùê±¼ä7.5¸öadcÖüÆú  Dìía¼ó8.5¸öÖüÆú
        ADC1->ISR                        |= 0X04;//eoc ûóDD′½øè¥
        if((ADC1->CR & ADC_CR_ADEN) != 0) //enable adc룬ÏèÇåáã
  { ADC1->CR &= (uint32_t)(~ADC_CR_ADEN);}
  ADC1->CR |= ADC_CR_ADCAL; //D£×¼adc£¬
  while ((ADC1->ISR & ADC_ISR_EOCAL) == 0) {}//D£×¼íê±Ï 1 êÇíê±Ï
  ADC1->ISR |= ADC_ISR_EOCAL;//ÕaÖÖ±íê¾·½·¨£¿
        ADC1->CR |= ADC_CR_ADEN; /* (1) */
        ADC1->CR |= ADC_CR_ADVREGEN;//¿aÄú2¿ÎèÑ1
  if ((ADC1->CFGR1 &  ADC_CFGR1_AUTOFF) == 0)//èç1ûautooffÄ£ê½1Ø£¿
  {
    while ((ADC1->ISR & ADC_ISR_ADRDY) == 0){}//μè×Åadcenableoó×¼±¸oÃ
  }
        ADC1->CR         |= 0X05;  //SATRT ;ÂíéÏ¿aê¼ò»Ö±×a»»
}

int main(void)
{
       
        //LedInit();
        //KeyInitIT();
//        HAL_Init();
        UsartInit();
        ADC_Init();
       
/*         while(1)               
   {               
       while((ADC1->ISR&0x04)!=0x04){}
       tdat = ADC1->DR;
       if (tdat >= 0X80)
                          {
                             tdat = 0XFF;
                          }
       else
                          {
                            tdat = 0X00;
                          }                                 
                         //Usart2Tx(ADC1->DR);
                        Usart2Tx(tdat);
                        ADC1->ISR &= ~0x04;
         }
        */
        tdat = 0xFF;
       
while(1)
  {
     //tdat ^= 0x11;
                tdat ^= 0xFF;
                //USART2->TDR =tdat;
                Usart2Tx(tdat);
               
  }       
}
这是所有的源代码~
此帖出自stm32/stm8论坛
 
 

回复

3

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
是因为工程里的一些包含文件有问题吗?
此帖出自stm32/stm8论坛
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表