久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 3234|回復: 0
打印 上一主題 下一主題
收起左側

STM32串行通信程序問題

[復制鏈接]
跳轉到指定樓層
樓主
ID:75953 發表于 2015-4-2 14:30 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
大家好,麻煩大家幫忙看一下,最近在做stm32f103和紙幣器的串行通信,我使用串口助手和紙幣器進行通信,可以看到每隔兩秒紙幣器發送80  8f(十六進制),當紙幣器接收到02H,就不發送了,并且可以開始吸收紙幣了,但是我用單片機連接就不行了,麻煩大家看下程序:
#include "stm32f10x.h"
void Delay_MS(u16 dly);
void RCC_Configuration(void);
void GPIO_Configuration(void);
void  USART_Configuration(void);
void NVIC_Config(void);
extern u8 RxData[3];
void Delay_MS(u16 dly)
{
        u16 i,j;
        for(i=0;i<dly;i++)
                for(j=1000;j>0;j--);
}
void RCC_Configuration(void)
{
      RCC_DeInit();
          RCC_HSEConfig(RCC_HSE_ON);
          while(RCC_WaitForHSEStartUp()== ERROR);
          FLASH_SetLatency(FLASH_Latency_2);
          FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);
          RCC_HCLKConfig(RCC_SYSCLK_Div1);  
          RCC_PCLK2Config(RCC_HCLK_Div1);
          RCC_PCLK1Config(RCC_HCLK_Div2);
          RCC_PLLConfig(RCC_PLLSource_HSE_Div1, RCC_PLLMul_9);
          RCC_PLLCmd(ENABLE);
          while( RCC_GetFlagStatus(RCC_FLAG_PLLRDY)==RESET);
          RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);
          while(RCC_GetSYSCLKSource() != 0x08);
         // RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOF,ENABLE);
         // RCC_APB1PeriphClockCmd (RCC_APB1Periph_USART2,ENABLE);
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1|RCC_APB2Periph_AFIO|RCC_APB2Periph_GPIOA,ENABLE);
}
void GPIO_Configuration(void)
{       GPIO_InitTypeDef   GPIO_InitStructure;                //聲明一個結構體變量
        GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;        
        GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;         //管腳頻率為50MHZ
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;        
        GPIO_Init(GPIOA,&GPIO_InitStructure);                                 //初始化GPIOC寄存器
        
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;        
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //管腳頻率為50MHZ
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;        
        GPIO_Init(GPIOA,&GPIO_InitStructure);                  
}
void  USART_Configuration(void)
{       USART_InitTypeDef  U1;
        U1.USART_BaudRate =9600;
        U1.USART_WordLength = USART_WordLength_9b;
        U1.USART_StopBits = USART_StopBits_1;
        U1.USART_Parity = USART_Parity_Even;
        U1.USART_Mode = USART_Mode_Rx|USART_Mode_Tx;
        U1.USART_HardwareFlowControl = USART_HardwareFlowControl_None;
        USART_DeInit(USART1);
        USART_Init(USART1, &U1);
        USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
        USART_ClearFlag(USART1,USART_FLAG_TC);
        USART_Cmd(USART1,ENABLE);
}
void NVIC_Config(void)
{
        NVIC_InitTypeDef NVIC_InitStructure;
        NVIC_PriorityGroupConfig(NVIC_PriorityGroup_2);  //采用組別2         

        NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;//配置串口中斷
        NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;//占先式優先級設置為0
        NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; //副優先級設置為0
        NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;//中斷使能
        NVIC_Init(&NVIC_InitStructure);//中斷初始化
}
int main()
{    int flag=1;        
    RCC_Configuration();
    GPIO_Configuration();
    USART_Configuration();
    NVIC_Config();
        while(1)
        {
            while(flag)
                {                 
                 if((RxData[0]==0x80)&&(RxData[1]==0x8F))
                     {
                      USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);                          
                      USART_SendData(USART1,0x02);                        
                      while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET)
                          {
                          }
                          flag=0;
                          USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
                         }
                         if((RxData[1]==0x80)&&(RxData[2]==0x8F))
                     {
                      USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);                        
                      USART_SendData(USART1,0x02);
                      while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET)
                          {
                          }
                          flag=0;
                          USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
                         }
                         if((RxData[2]==0x80)&&(RxData[0]==0x8F))
                {
                        USART_ITConfig(USART1, USART_IT_RXNE, DISABLE);
                        USART_SendData(USART1,0x02);
                      while(USART_GetFlagStatus(USART1, USART_FLAG_TXE)==RESET)
                          {
                          }
                      flag=0;
                          USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);
                }                                                      
                  }
            }
}
子程序
u8 RxData[3]={0};
void USART1_IRQHandler(void)
{
     static u8 num=0;
     if(USART_GetITStatus(USART1,USART_IT_RXNE)!=RESET)
      {
       USART_ClearITPendingBit(USART1,USART_IT_RXNE);
       RxData[num]=USART_ReceiveData(USART1);
           num++;
          }           
          if(num==3)
             num=0;
          if(USART_GetFlagStatus(USART2,USART_FLAG_ORE) == SET) //溢出
          {
           USART_ClearFlag(USART2,USART_FLAG_ORE); //讀SR
           USART_ReceiveData(USART2); //讀DR      
          }
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 欧美中文字幕在线观看 | 欧美区日韩区 | av在线免费不卡 | 日韩a| 黄色av大片 | 亚洲精品电影网在线观看 | 精品二三区 | 中文字幕av一区二区三区 | 久久国产欧美日韩精品 | 欧美在线观看一区 | 日韩精品一区二区三区中文在线 | 久久99视频 | 国产女人与拘做受免费视频 | 国产精品久久久久久久久久久久久久 | 国产美女特级嫩嫩嫩bbb片 | 国产精品久久国产精品99 | 操操操日日日 | 亚洲久久在线 | 羞视频在线观看 | 一区视频在线播放 | 亚洲精品九九 | 超碰在线97国产 | 天堂网中文字幕在线观看 | 中文字幕在线观看视频一区 | 91精品久久久久久久久中文字幕 | 国产综合精品 | 国产综合久久久久久鬼色 | 99精品欧美一区二区三区 | 成人在线精品 | 日韩中文字幕在线视频观看 | 岛国av一区二区 | 国内精品久久久久 | 噜噜噜噜狠狠狠7777视频 | 久久精品亚洲精品国产欧美 | 亚洲电影一区二区三区 | 欧美一区二区三区在线视频 | 精品一区二区视频 | 高清成人免费视频 | 免费av一区二区三区 | 久久一区二区精品 | 国产成人精品999在线观看 |