这些小活动你都参加了吗?快来围观一下吧!>>
电子产品世界 » 论坛首页 » 高校专区 » 漓东e学堂 » 24号的作业本KEIL 的安装

共11条 2/2 1 2 跳转至
菜鸟
2014-12-25 23:25:08     打赏
11楼
  1. #include "stm32f10x.h"       
  2. #include "stm32_eval.h"       
  3. GPIO_InitTypeDef GPIO_InitStructure;    //??GPIO???    
  4.     
  5. NVIC_InitTypeDef  NVIC_InitStructure;    
  6. USART_InitTypeDef  USART_InitStructure;     
  7. USART_ClockInitTypeDef  USART_ClockInitStructure;     
  8.     
  9. #define buff_size  16;         
  10. char rx_buff[],rx_buff_count=0;    
  11.     
  12. /*???? ??*/      
  13. void delay_us(u32 n)       
  14. {       
  15.     u8 j;       
  16.     while(n--)       
  17.     for(j=0;j<10;j++);       
  18. }       
  19. /*???? ??*/      
  20. void  delay_ms(u32 n)       
  21. {       
  22.    while(n--)       
  23.     delay_us(1000);       
  24. }     
  25.     
  26. void RCC_Configuration(void)       
  27. {       
  28.     RCC_DeInit();       
  29.     RCC_HSICmd(ENABLE);       
  30.     while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);       
  31.     RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);       
  32.     RCC_HSEConfig(RCC_HSE_OFF);       
  33.     RCC_LSEConfig(RCC_LSE_OFF);       
  34.     RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz       
  35.     RCC_PLLCmd(ENABLE);       
  36.     while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);       
  37.     RCC_ADCCLKConfig(RCC_PCLK2_Div4);       
  38.     RCC_PCLK2Config(RCC_HCLK_Div1);       
  39.     RCC_PCLK1Config(RCC_HCLK_Div2);       
  40.     RCC_HCLKConfig(RCC_SYSCLK_Div1);       
  41.     RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);       
  42.     while(RCC_GetSYSCLKSource() != 0x08);       
  43.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);       
  44.     GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);    
  45.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;       
  46.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;       
  47.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;       
  48.     GPIO_Init(GPIOD, &GPIO_InitStructure);       
  49.     GPIO_ResetBits(GPIOD,GPIO_Pin_2);                      //?????    
  50. }     
  51.     
  52. void USART_SendStr(char *str)      //???????    
  53. {    
  54.    while((*str)!='\0')             //???????    
  55.         {USART_SendData(USART1,*str++);    
  56.         while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);    
  57.         }    
  58. }    
  59.     
  60. void USART_int(long BaudRate)       //USART??    
  61. {    
  62.       RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);//??PA?USART1    
  63.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;               //PA^9??TX_D1    
  64.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;    
  65.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;          //??????    
  66.     GPIO_Init(GPIOA, &GPIO_InitStructure);    
  67.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;               //PA^10??RX_D1    
  68.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;     //????    
  69.     GPIO_Init(GPIOA, &GPIO_InitStructure);    
  70.     
  71.     USART_InitStructure.USART_BaudRate = BaudRate;//????    
  72.     USART_InitStructure.USART_WordLength = USART_WordLength_8b;//??8bit    
  73.     USART_InitStructure.USART_StopBits = USART_StopBits_1;      //???1    
  74.     USART_InitStructure.USART_Parity = USART_Parity_No;//????    
  75.     USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;  //???none    
  76.     USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;                  //???????    
  77.       USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;         
  78.     USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;          
  79.     USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;          
  80.     USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;    
  81.     USART_ClockInit(USART1, &USART_ClockInitStructure);           //???USART1??         
  82.     USART_Init(USART1, &USART_InitStructure);                    //???USART1    
  83.     USART_Cmd(USART1, ENABLE);     
  84.       USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);    
  85.     USART_Cmd(USART1, ENABLE);    
  86.      
  87.         NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);       //??4????    
  88.         NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;     //??USART1????    
  89.         NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;    
  90.         NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;    
  91.         NVIC_Init(&NVIC_InitStructure);                       //?????    
  92. }    
  93.     
  94. void GPIO_INIT()       
  95. {      
  96.     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  //RCC_APB2Periph_GPIOC  ??GPIOX???      ENABLE\DISABLE   ??or??      
  97.     GPIO_InitStructure.GPIO_Pin = GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7;//??:????PC^0-7       
  98.     GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;         //??:????    
  99.     GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;          //??:Out_PP????,????,??           
  100.     GPIO_Init(GPIOC, &GPIO_InitStructure);      
  101. }    
  102.     
  103. unsigned int my_atoi(char* pstr) //???:????????    
  104. {       
  105.       int s = 0;      
  106.         while(*pstr != '\0')        //??????????????    
  107.         {    
  108.                 if(*pstr >= '0' && *pstr <= '9')  //????????0-9???    
  109.                 {      
  110.                         s = s * 10 + *pstr - '0';       
  111.                 }      
  112.                 pstr++;    
  113.         }           
  114.     return s;     
  115. }     
  116.     
  117.     
  118.     
  119.     
  120.     
  121. int main()      
  122. {                               
  123.         RCC_Configuration();    
  124.       GPIO_INIT();     
  125.         USART_int(9600);    
  126.         USART_SendStr("Please input like: data=\r\n");    
  127.         USART_SendStr("\n>");    
  128.         while(1){    
  129.                 }    
  130. }    
  131.     
  132. void USART1_IRQHandler(void)     
  133. {     
  134.   while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)    
  135.   {     
  136.   }     
  137.         
  138.   USART_ClearFlag(USART1, USART_FLAG_RXNE);    
  139.     
  140. }  

共11条 2/2 1 2 跳转至

回复

匿名不能发帖!请先 [ 登陆 注册 ]