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

共26条 1/3 1 2 3 跳转至

07作业本

菜鸟
2014-10-21 21:54:49     打赏

07的作业

 

第一次作业 

arm stm32测试过程 4楼 http://forum.eepw.com.cn/thread/262549/1/#4

次作业

kerl软件安装过程 2楼 http://forum.eepw.com.cn/thread/262549/1/#2

kerl破解过程 3楼 http://forum.eepw.com.cn/thread/262549/1/#3

第三次作业

 8个LED循环点亮&点亮rgb(白色灯不点亮) 5楼 http://forum.eepw.com.cn/thread/262549/1/#5

第四次作业

数码管按键切换扫描 6楼 http://forum.eepw.com.cn/thread/262549/1/#6

第五次作业

串口读0-99数据,数码管显示数据读到的0-99数据  7楼  http://forum.eepw.com.cn/thread/262549/1/#7

第六次作业

007按键中断熄灭led   9楼 http://forum.eepw.com.cn/thread/262549/1/#9

007按键中断熄灭led(的视频)  15楼 http://forum.eepw.com.cn/thread/262549/2/#15

定时器TIM2,TIM3定时闪烁LED   25楼 http://forum.eepw.com.cn/thread/262549/3/#25

  第七次作业

PWM  rgb七种颜色呼吸灯 14楼  http://forum.eepw.com.cn/thread/262549/2/#14

PWM  rgb七种颜色呼吸灯(修改版) 19楼 http://forum.eepw.com.cn/thread/262549/2/#19

PWM  rgb七种颜色呼吸灯修改版(的视频) 21楼 http://forum.eepw.com.cn/thread/262549/3/#21

 第八次作业

 IIC 按键次数存储,数据不丢失 22楼 http://forum.eepw.com.cn/thread/262549/3/#22

第九次作业

ISP  23楼 http://forum.eepw.com.cn/thread/262549/3/#23

第十次作业

时钟滴答48MHz&&读取18b20  ID地址  24楼 http://forum.eepw.com.cn/thread/262549/3/#24




菜鸟
2014-10-21 23:15:00     打赏
2楼


安装过程

1.先找到软件的位置,双击打开

 

2.单击Next

 

3.勾,单击Next


 4.选择安装位置

 


5.自定义填好First Name e-mail,单击next


6.等待一段较长时间的安装过程


7.安装过程结束后,单击next

 

8.取消两个勾

9.单击finish安装完成




 

 


菜鸟
2014-10-21 23:17:19     打赏
3楼

kerl破解过程

 1.找到破解软件的位置,双击打开

 

2.双击打开已经安装好的软件

3.单击选择file,选中license management

  

4.在弹出的框中复制CID

 

5.将复制好的CID粘贴到打开好的破解软件的CID框中,并且下拉选择ARM,单击Generate

 

 6.将下方出现的一串字母复制粘贴到软件的New license ID Code(LIC):

 

7.单击Add LIC

 

8.退出即可破解完成了


菜鸟
2014-10-21 23:45:24     打赏
4楼

arm stm32测试过程截图

 

 

 


菜鸟
2014-10-22 23:41:57     打赏
5楼

视频地址:http://player.youku.com/player.php/sid/XODIwMjYxNTA0/v.swf


8个LED循环点亮&点亮rgb(白色灯不点亮)

view plaincopy to clipboardprint?
01./* Includes ------------------------------------------------------------------*/  
02.#include "stm32f10x.h"   
03.#include "stm32_eval.h"   
04.GPIO_InitTypeDef GPIO_InitStructure;   
05.  
06.void RCC_Configuration(void)//始终配置   
07.{  
8个LED循环点亮&点亮rgb(白色灯不点亮)

view plaincopy to clipboardprint?
01./* Includes ------------------------------------------------------------------*/  
02.#include "stm32f10x.h"   
03.#include "stm32_eval.h"   
04.GPIO_InitTypeDef GPIO_InitStructure;   
05.  
06.void RCC_Configuration(void)//始终配置   
07.{   
08.  RCC_DeInit();   
09.       
10.  RCC_HSICmd(ENABLE);   
11.  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);   
12.     
13.  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);   
14.     
15.  RCC_HSEConfig(RCC_HSE_OFF);   
16.  RCC_LSEConfig(RCC_LSE_OFF);   
17.  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz   
18.  RCC_PLLCmd(ENABLE);   
19.  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);   
20.  RCC_ADCCLKConfig(RCC_PCLK2_Div4);   
21.  RCC_PCLK2Config(RCC_HCLK_Div1);   
22.  RCC_PCLK1Config(RCC_HCLK_Div2);   
23.  RCC_HCLKConfig(RCC_SYSCLK_Div1);   
24.  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);   
25.  while(RCC_GetSYSCLKSource() != 0x08);   
26.    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);   
27.  GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG   
28.  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;   
29.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
30.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
31.  GPIO_Init(GPIOD, &GPIO_InitStructure);   
32.    GPIO_ResetBits(GPIOD,GPIO_Pin_2);//关闭蜂鸣器   
33.}   
34./*初始化GPIO*/  
35.void GPIO_INIT()   
36.{   
37.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_GPIOA, ENABLE);//使能PC、PA时钟   
38.  
39.  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;//Ñ¡Ôñ¹Ü½Åp0ÖÁp7   
40.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;//管脚最高输出速率为50MHZ   
41.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出   
42.  GPIO_Init(GPIOC, &GPIO_InitStructure);//初始化PC   
43.    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//使用PA1¡、PA2¡、PA3     
44.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;     
45.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
46.  GPIO_Init(GPIOA, &GPIO_InitStructure);//初始化PA   
47.}     
48./*微秒延时函数*/  
49.void delay_us(u32 n)   
50.{   
51.    u8 j;   
52.    while(n--)   
53.    for(j=0;j<10;j++);   
54.}   
55./*毫米延时函数*/  
56.void  delay_ms(u32 n)   
57.{   
58.    while(n--)   
59.    delay_us(1000);   
60.}   
61.               
62./**  
63.  * @brief  Main program.  
64.  * @param  None  
65.  * @retval None  
66.  */  
67.int main(void)     
68.{      
69.    RCC_Configuration();     
70.    GPIO_INIT();     
71./*LED、RGB函数*/  
72.    while(1)     
73.        {   
74.                    GPIO_ResetBits(GPIOC,GPIO_Pin_3);//点亮D4   
75.                    delay_ms(200);               
76.          GPIO_SetBits(GPIOC,GPIO_Pin_3);//熄灭D4  
77.                       
78.                    GPIO_ResetBits(GPIOC,GPIO_Pin_2);//点亮D3   
79.                    delay_ms(200);         
80.          GPIO_SetBits(GPIOC,GPIO_Pin_2);   
81.             
82.                    GPIO_ResetBits(GPIOC,GPIO_Pin_1);//点亮D2   
83.                    delay_ms(200);     
84.          GPIO_SetBits(GPIOC,GPIO_Pin_1);     
85.            
86.                    GPIO_ResetBits(GPIOC,GPIO_Pin_0);//点亮D1    
87.          delay_ms(200);     
88.          GPIO_SetBits(GPIOC,GPIO_Pin_0);     
89.             
90.                    GPIO_ResetBits(GPIOC,GPIO_Pin_4);//点亮D5   
91.          delay_ms(200);     
92.          GPIO_SetBits(GPIOC,GPIO_Pin_4);   
93.             
94.                    GPIO_ResetBits(GPIOC,GPIO_Pin_5);//点亮D6     
95.          delay_ms(200);     
96.          GPIO_SetBits(GPIOC,GPIO_Pin_5);   
97.             
98.                    GPIO_ResetBits(GPIOC,GPIO_Pin_6);//点亮D7     
99.          delay_ms(200);     
100.                    GPIO_SetBits(GPIOC,GPIO_Pin_6);   
101.  
102.  
103.                 
104.          GPIO_ResetBits(GPIOA,GPIO_Pin_3);//闪烁绿光   
105.          delay_ms(200);     
106.          GPIO_SetBits(GPIOA,GPIO_Pin_3); //熄灭绿光       
107.              
108.          GPIO_ResetBits(GPIOA,GPIO_Pin_1);//闪烁蓝光   
109.          delay_ms(200);     
110.          GPIO_SetBits(GPIOA,GPIO_Pin_1);//熄灭蓝光           
111.                 
112.          GPIO_ResetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3);//靛=蓝光+绿光   
113.          delay_ms(200);     
114.          GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_3); 熄灭靛 

115.}       
116.  
117.} 


菜鸟
2014-10-30 23:29:18     打赏
6楼

视频地址:http://player.youku.com/player.php/sid/XODE1MTkzMzg4/v.swf
/**  
  ******************************************************************************  
  * @file    GPIO/IOToggle/main.c   
  * @author  MCD Application Team  
  * @version V3.5.0  
  * @date    08-April-2011  
  * @brief   Main program body.  
  ******************************************************************************  
  * @attention  
  *  
  * THE PRESENT FIRMWARE WHICH IS FOR GUIDANCE ONLY AIMS AT PROVIDING CUSTOMERS  
  * WITH CODING INFORMATION REGARDING THEIR PRODUCTS IN ORDER FOR THEM TO SAVE  
  * TIME. AS A RESULT, STMICROELECTRONICS SHALL NOT BE HELD LIABLE FOR ANY  
  * DIRECT, INDIRECT OR CONSEQUENTIAL DAMAGES WITH RESPECT TO ANY CLAIMS ARISING  
  * FROM THE CONTENT OF SUCH FIRMWARE AND/OR THE USE MADE BY CUSTOMERS OF THE  
  * CODING INFORMATION CONTAINED HEREIN IN CONNECTION WITH THEIR PRODUCTS.  
  *  
  *  
 
    ? COPYRIGHT 2011 STMicroelectronics  
 
******************************************************************************  
  */    
  
/* Includes ------------------------------------------------------------------*/  
#include "stm32f10x.h"   
#include "stm32_eval.h"   
GPIO_InitTypeDef GPIO_InitStructure;   
  
void RCC_Configuration(void)   
{   
  RCC_DeInit();   
       
  RCC_HSICmd(ENABLE);   
  while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);   
     
  RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);   
     
  RCC_HSEConfig(RCC_HSE_OFF);   
  RCC_LSEConfig(RCC_LSE_OFF);   
  RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz   
  RCC_PLLCmd(ENABLE);   
  while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);   
  RCC_ADCCLKConfig(RCC_PCLK2_Div4);   
  RCC_PCLK2Config(RCC_HCLK_Div1);   
  RCC_PCLK1Config(RCC_HCLK_Div2);   
  RCC_HCLKConfig(RCC_SYSCLK_Div1);   
  RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);   
  while(RCC_GetSYSCLKSource() != 0x08);   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);   
 GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
  GPIO_Init(GPIOD, &GPIO_InitStructure);   
    GPIO_ResetBits(GPIOD,GPIO_Pin_2);   
}   
  
void GPIO_INIT()//输入输出的初始化   
{   
  
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_10;   
  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
      GPIO_Init(GPIOC, &GPIO_InitStructure);   
       
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);   
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;   
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
  GPIO_Init(GPIOB, &GPIO_InitStructure);   
       
}   
  
void delay_us(u32 n)  //延时1us   
{   
    u8 j;   
    while(n--)   
    for(j=0;j<10;j++);   
}   
  
void  delay_ms(u32 n)     //延时1ms   
{   
    while(n--)   
    delay_us(1000);   
}   
    
//定义一个数组,用来显示数字0到9   
 int table[10]={GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8 ,GPIO_Pin_9|GPIO_Pin_12 ,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_5,   
GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_5,GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_8|GPIO_Pin_5,GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_8|GPIO_Pin_5,   
GPIO_Pin_7|GPIO_Pin_12|GPIO_Pin_14|GPIO_Pin_13|GPIO_Pin_8|GPIO_Pin_5,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12,   
GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14   
  
};      
  
void shumaguan(char temp) 
{   
    char gewei=0,shiwei=0;   
    shiwei=temp/10;   
    gewei=temp%10;
	if(temp<10)
  	{
             GPIO_SetBits(GPIOB,GPIO_Pin_1);   
              GPIO_ResetBits(GPIOB,table[gewei]);   
  
          delay_ms(5);   
                GPIO_ResetBits(GPIOB,GPIO_Pin_1);   
           GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);   
	    }
		 if(temp>=10)
				{
					
					
                    GPIO_SetBits(GPIOB,GPIO_Pin_15);   
              GPIO_ResetBits(GPIOB,table[shiwei]);   
          delay_ms(1);   
            GPIO_ResetBits(GPIOB,GPIO_Pin_15);   
           GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);   
               
             GPIO_SetBits(GPIOB,GPIO_Pin_1);   
              GPIO_ResetBits(GPIOB,table[gewei]);   
  
          delay_ms(1);   
                GPIO_ResetBits(GPIOB,GPIO_Pin_1);   
           GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);   
    
	   }
				
           if(temp>30)   
            {   
                    GPIO_SetBits(GPIOB,GPIO_Pin_15);   
              GPIO_ResetBits(GPIOB,table[shiwei]);   
          delay_ms(100);   
            GPIO_ResetBits(GPIOB,GPIO_Pin_15);   
           GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);   
               
             GPIO_SetBits(GPIOB,GPIO_Pin_1);   
              GPIO_ResetBits(GPIOB,table[gewei]);   
  
          delay_ms(150);   
                GPIO_ResetBits(GPIOB,GPIO_Pin_1);   
           GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);   
  
            }   
  
}   
  

  
       
  
int main(void)      
{         
        char a = 0, b = 0,count=0;   //定义三个计数器。 
      RCC_Configuration();       //调用函数   
         GPIO_INIT();      //调用函数   
      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);  //关闭数码管   
      while(1){   
     if(!GPIO_ReadInputDataBit (GPIOC,GPIO_Pin_10)) //判断按键是否按下   
      {   
                    delay_ms(100);   
         if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_10))   
               {   
                                 count++;  //count自加1;   
              }   
                        }   
             if(count%2==1){      
                                                            if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))     
                                                 {   delay_ms(80);      
                                                             if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))   
                                                                             {a++;}   
                                                            }     
                                                                if(a>100)   
                                   {a=0;}  //a>100,a置0;   
                                                        shumaguan(a);   
            }   
       
       if(count%2==0){   
           if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9))   
         {delay_ms(80);      
          if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_9)){b++;}}     
                 if(b>100){b=0;}     
                 shumaguan(b);}   
      
       }      
       
        
     }     


菜鸟
2014-11-21 00:03:31     打赏
7楼
/**  
  * @brief  Main program.  
  * @param  None  
  * @retval None  
  */  
#include "stm32f10x.h" //定义     
#include "stm32_eval.h"//定义     
#include    "stdio.h" //定义     
#include "math.h" //定义     
#define buff_size  16;//定义            
char rx_buff[], rx_buff_count=0; // rx_buff[]数祖,rx_buff_count初始值等于0  
     
GPIO_InitTypeDef  GPIO_InitStructure;//      
USART_InitTypeDef  USART_InitStructure;      
NVIC_InitTypeDef  NVIC_InitStructure;      
USART_ClockInitTypeDef  USART_ClockInitStructure;      
     
void RCC_Configuration(void)      
{      
    RCC_DeInit();      
    RCC_HSICmd(ENABLE);      
    while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);      
    RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);      
    RCC_HSEConfig(RCC_HSE_OFF);      
    RCC_LSEConfig(RCC_LSE_OFF);      
    RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz      
    RCC_PLLCmd(ENABLE);      
    while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);      
    RCC_ADCCLKConfig(RCC_PCLK2_Div4);      
    RCC_PCLK2Config(RCC_HCLK_Div1);      
    RCC_PCLK1Config(RCC_HCLK_Div2);      
    RCC_HCLKConfig(RCC_SYSCLK_Div1);      
    RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);      
    while(RCC_GetSYSCLKSource() != 0x08);      
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);      
    GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG      
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;      
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;      
    GPIO_Init(GPIOD, &GPIO_InitStructure);      
    GPIO_ResetBits(GPIOD,GPIO_Pin_2);//关闭蜂鸣器      
}      
void GPIO_INIT()      
{      
    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);//使能PC时钟   
    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15;      
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;      
    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出       
    GPIO_Init(GPIOB, &GPIO_InitStructure);//初始化PB   
   GPIO_SetBits(GPIOB, GPIO_Pin_1|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15);   
}      
     
void USART_int(long BaudRate)      
{   USART_InitTypeDef USART_InitStructure;        
    USART_ClockInitTypeDef USART_ClockInitStructure;        
     NVIC_InitTypeDef NVIC_InitStructure;     
     RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);//使能PA USART1      
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;//TX 位于PA9       
   GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;      
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; //推挽输出     
   GPIO_Init(GPIOA, &GPIO_InitStructure);// TX初始化 PA9    
   GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;// RX位于PA10       
   GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;//悬空输入    
   GPIO_Init(GPIOA, &GPIO_InitStructure);//RX初始化 PA10       
  /* USARTx configured as follow:    
        - BaudRate = 115200 baud      
        - Word Length = 8 Bits    
        - One Stop Bit    
        - No parity    
        - Hardware flow control disabled (RTS and CTS signals)    
        - Receive and transmit enabled    
  */     
    USART_InitStructure.USART_BaudRate = BaudRate;//传输速率       
    USART_InitStructure.USART_WordLength = USART_WordLength_8b;//字长8比特     
    USART_InitStructure.USART_StopBits = USART_StopBits_1;//停止位1       
    USART_InitStructure.USART_Parity = USART_Parity_No;//      
    USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;    
    USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;// 接受和发送   
    USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;           
  USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;            
  USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;            
  USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;      
    USART_ClockInit(USART1, &USART_ClockInitStructure);//初始化USART1时钟    
    USART_Init(USART1, &USART_InitStructure);//初始化USART1时钟       
    USART_Cmd(USART1, ENABLE);       
    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);      
    USART_Cmd(USART1, ENABLE);      
  /* Configure four bit for preemption priority */     
    NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);      
  /* Enable the USART1 Interrupt */     
    NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //选择USART1中断通道     
    NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;      
    NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;      
    NVIC_Init(&NVIC_InitStructure);//初始化中断     
}      
     
/*delay_us*/       
        
void delay_us(u32 n)         
{         
    u8 j;         
    while(n--)         
    for(j=0;j<10;j++);         
}         
/*延时函数 微秒*/        
void  delay_ms(u32 n)         
{         
   while(n--)         
    delay_us(1000);         
}       
/*delay_ms*/      
void USART_SendStr(char *str)      //发送字符串函数     
{      
   while((*str)!='\0')             //发送完直至最后        
        {USART_SendData(USART1,*str++);      
        while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) == RESET);      
        }       
unsigned int my_atoi(char* pstr) //字符串      
{         
      int s = 0;        
        while(*pstr != '\0')        //一直扫描到字符串      
        {      
                if(*pstr >= '0' && *pstr <= '9')  //字符串中有数字0-9      
                {        
                        s = s * 10 + *pstr - '0';         
                }        
                pstr++;      
        }             
    return s;       
}    
          
 void Num(int i)      
{      
      switch(i)//点亮对应输入的数字      
    {      
        case 0 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;      
        case 1 : GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);                                              break;      
        case 2 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);            break;      
        case 3 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);            break;      
        case 4 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);                        break;      
        case 5 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);            break;      
        case 6 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;      
        case 7 : GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);                                   break;      
        case 8 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);break;      
        case 9 : GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14); break;      
        }    
    }          
    void func(char *S,char LEN)        
{    
    int z;   
   GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);         
          
    while(1)      
    {             
       z=my_atoi(S);      
         
        GPIO_SetBits(GPIOB,GPIO_Pin_1); //打开个位数码管      
        Num(z%10);                      //点亮各位数       
        delay_ms(5);                    //延时  
        GPIO_ResetBits(GPIOB,GPIO_Pin_1);//关闭个位数码管           
        GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);      
                  
        GPIO_SetBits(GPIOB,GPIO_Pin_15);//打开十位数码管      
        Num(z/10);        
        delay_ms(5);      
        GPIO_ResetBits(GPIOB,GPIO_Pin_15);//关闭十位        
        GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);      
                      
        }    
    }   
    void input_ASK()        
{        
    char j;        
    func(rx_buff,rx_buff_count);        
    rx_buff_count=0;        
    for (j=0;j<rx_buff_count;j++)        
    {rx_buff[j]='\0';}    
   // USART_SendStr("\n>");        
}        
  
int main()        
{                                 
        RCC_Configuration();      
      GPIO_INIT();       
        USART_int(9600);      
       // USART_SendStr("Please input like: data=\r\n");      
        //USART_SendStr("\n>");      
        while(1){      
                }      
}      
     
void USART1_IRQHandler(void)  //声明接收中断函数 
{       
  while(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) == RESET)  //等待接收完毕   
  {       
  }       
    if(USART_ReceiveData(USART1)==0x0d)     //如果接收到回车,结束输入      
    {input_ASK();}          //执行input_ASK()  
    else     
    {      
    USART_SendData(USART1,USART_ReceiveData(USART1));      //将数据回送至超级终端
    rx_buff[rx_buff_count]= USART_ReceiveData(USART1);      
        rx_buff_count++;      
    }      
  USART_ClearFlag(USART1, USART_FLAG_RXNE); //发送数据     
     
}    

 学习了各位同学的代码,但是依然没能搞定这次的作业。。。。

 


高工
2014-11-21 15:13:05     打赏
8楼
加把油,好好研究一下

菜鸟
2014-11-27 21:48:45     打赏
9楼
    #include "stm32f10x.h"
    #include "stm32_eval.h"
    #include <stdio.h>

    EXTI_InitTypeDef   EXTI_InitStructure;  
    GPIO_InitTypeDef   GPIO_InitStructure;  
    NVIC_InitTypeDef   NVIC_InitStructure;  
    USART_InitTypeDef USART_InitStructure;  
    USART_ClockInitTypeDef USART_ClockInitStructure;  
      
    void EXTIkeyS1_Config(void);  
    void EXTIkeyS2_Config(void);  
    void EXTIkeyS3_Config(void);  
    void EXTIkeyS4_Config(void);  
    void RCC_Configuration(void)  
    {  
      RCC_DeInit();      
      RCC_HSICmd(ENABLE);  
      while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);    
      RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);    
      RCC_HSEConfig(RCC_HSE_OFF);  
      RCC_LSEConfig(RCC_LSE_OFF);  
      RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); //  72HMz  
      RCC_PLLCmd(ENABLE);  
      while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);  
      RCC_ADCCLKConfig(RCC_PCLK2_Div4);  
      RCC_PCLK2Config(RCC_HCLK_Div1);  
      RCC_PCLK1Config(RCC_HCLK_Div2);  
      RCC_HCLKConfig(RCC_SYSCLK_Div1);  
      RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);  
      while(RCC_GetSYSCLKSource() != 0x08);  
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);  
      GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG  
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);  
      GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG  
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;  
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
      GPIO_Init(GPIOD, &GPIO_InitStructure);  
        GPIO_ResetBits(GPIOD,GPIO_Pin_2);  
        RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);  
      GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG  
      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;  
      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;  
      GPIO_Init(GPIOC, &GPIO_InitStructure);  
        GPIO_ResetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3|GPIO_Pin_4|GPIO_Pin_5|GPIO_Pin_6|GPIO_Pin_7);  
    }  
      
    void USART_int(long BaudRate)  
    {  
          RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);  
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  
        GPIO_InitStructure.GPIO_Speed = GPIO_Speed_10MHz;  
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;   
        GPIO_Init(GPIOA, &GPIO_InitStructure);  
        /* PA10 USART1_Rx  */  
        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  
        GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
        GPIO_Init(GPIOA, &GPIO_InitStructure);  
      
            USART_InitStructure.USART_BaudRate = BaudRate;//??????  
            USART_InitStructure.USART_WordLength = USART_WordLength_8b;//???????8bit  
            USART_InitStructure.USART_StopBits = USART_StopBits_1;//????1  
            USART_InitStructure.USART_Parity = USART_Parity_No;//????  
            USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//??????none  
            USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//??????????  
            USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;       
        USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;        
        USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;        
        USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;  
        USART_ClockInit(USART1, &USART_ClockInitStructure);  
            USART_Init(USART1, &USART_InitStructure);  
            USART_Cmd(USART1, ENABLE);  
            USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);  
        USART_Cmd(USART1, ENABLE);  
       
            NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);  
            NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn; //  
            NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 15;  
            NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
            NVIC_Init(&NVIC_InitStructure);  
    }  
      
    int main(void)  
    {  
        RCC_Configuration();  
        
      EXTIkeyS1_Config();  
      EXTIkeyS2_Config();  
      EXTIkeyS3_Config();  
      EXTIkeyS4_Config();  
      USART_int(115200);  
        printf("Config done,waiting for interrupt......\r\n");            
      while (1)  
      {  
      }  
    }  
      
    void EXTIkeyS1_Config(void)  
    {  
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//打开按键,输入模式,PC8 ,S1 
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;  
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
      GPIO_Init(GPIOC, &GPIO_InitStructure);  
      
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//PC8链接到中断线8  
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource8);  
      
      EXTI_InitStructure.EXTI_Line = EXTI_Line8;//中断线的设置  
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//低电平触发  
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;  
      EXTI_Init(&EXTI_InitStructure);  
      
      NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;//设置分组  
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
      NVIC_Init(&NVIC_InitStructure);  
    }  
      
    void EXTIkeyS2_Config(void)  
    {  
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  
      
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;  
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
      GPIO_Init(GPIOC, &GPIO_InitStructure);  
      
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);  
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource9);  
      
      EXTI_InitStructure.EXTI_Line = EXTI_Line9;  
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;  
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;  
      EXTI_Init(&EXTI_InitStructure);  
      
      NVIC_InitStructure.NVIC_IRQChannel = EXTI9_5_IRQn;  
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
      NVIC_Init(&NVIC_InitStructure);  
    }  
      
    void EXTIkeyS3_Config(void)  
    {  
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//打开按键,输入模式 ,S3
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
      GPIO_Init(GPIOC, &GPIO_InitStructure);  
      
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//PC10链接到中断线10  
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource10);  
      
      EXTI_InitStructure.EXTI_Line = EXTI_Line10;//中断线的设置  
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//低电平触发  
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;  
      EXTI_Init(&EXTI_InitStructure);  
      
      NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;//设置分组  
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
      NVIC_Init(&NVIC_InitStructure);//初始化  
    }  
      
    void EXTIkeyS4_Config(void)  
    {  
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);//打开按键,输入模式  S4
      GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;  
      GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
      GPIO_Init(GPIOC, &GPIO_InitStructure);  
      
      RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);//PC11链接到中断线11  
      GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource11);  
      
      EXTI_InitStructure.EXTI_Line = EXTI_Line11;//中断线的设置  
      EXTI_InitStructure.EXTI_Mode = EXTI_Mode_Interrupt;  
      EXTI_InitStructure.EXTI_Trigger = EXTI_Trigger_Falling;//低电平触发  
      EXTI_InitStructure.EXTI_LineCmd = ENABLE;  
      EXTI_Init(&EXTI_InitStructure);  
      
      NVIC_InitStructure.NVIC_IRQChannel = EXTI15_10_IRQn;//设置分组  
      NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0x0F;  
      NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;  
      NVIC_Init(&NVIC_InitStructure);  
    }  
      
    void EXTI15_10_IRQHandler(void)  
    {  
      if(EXTI_GetITStatus(EXTI_Line10) != RESET)//判断中断线10上的中断是否发生  
      {  
         GPIO_SetBits(GPIOC,GPIO_Pin_4|GPIO_Pin_5);//熄灭PC4,5
         printf("S3 interrupt ......\r\n");  
         EXTI_ClearITPendingBit(EXTI_Line10);//清除中断线10上的中断标志位  
      }  
          
          if(EXTI_GetITStatus(EXTI_Line11) != RESET)//判断中断线11上的中断是否发生  
      {  
         GPIO_SetBits(GPIOC,GPIO_Pin_6|GPIO_Pin_7);//熄灭PC6,7 
         printf("S4 interrupt ......\r\n");  
         EXTI_ClearITPendingBit(EXTI_Line11);//清除中断线11上的中断标志位  
      }  
    }  
      
    void EXTI9_5_IRQHandler(void)  
    {  
      if(EXTI_GetITStatus(EXTI_Line8) != RESET)  
      {  
         GPIO_SetBits(GPIOC,GPIO_Pin_0|GPIO_Pin_1);  
         printf("S2 interrupt ......\r\n");  
         EXTI_ClearITPendingBit(EXTI_Line8);//清除  
      }  
          
        if(EXTI_GetITStatus(EXTI_Line9) != RESET)  
      {  
         GPIO_SetBits(GPIOC,GPIO_Pin_2|GPIO_Pin_3);  
         printf("S1 interrupt ......hahaha!\r\n");  
         EXTI_ClearITPendingBit(EXTI_Line9);  
      }  
    }  
      
      
    #ifdef  USE_FULL_ASSERT  
      
    void assert_failed(uint8_t* file, uint32_t line)  
    {   
      while (1)  
      {  
      }  
    }  
      
    #endif   
      
    #ifdef __GNUC__  
      
      #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)  
    #else  
      #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)  
    #endif   
      
    PUTCHAR_PROTOTYPE  
    {  
      USART_SendData(EVAL_COM1, (uint8_t) ch);  
      while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)  
      {}  
      return ch;  
    }  
      
    #ifdef  USE_FULL_ASSERT  
    void assert_failed(uint8_t* file, uint32_t line)  
    {   
      while (1)  
      {  
      }  
    }  
      
    #endif  

 



高工
2014-11-27 23:10:33     打赏
10楼

不错的注释

能上个演示就好了,吼吼


共26条 1/3 1 2 3 跳转至

回复

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