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

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

27作业

菜鸟
2014-10-22 23:07:09     打赏

专家
2014-10-22 23:14:08     打赏
2楼
Target 得选ARM,  你这是要用ARM吧?

高工
2014-10-22 23:52:16     打赏
3楼

童鞋,你和谐好了吗?


菜鸟
2014-10-23 23:41:08     打赏
4楼
#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_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_GPIOC|RCC_APB2Periph_GPIOA, ENABLE); 
	  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;//ҪʹÓÃPC0µ½PC7  
	  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
	  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//ÍÆÍìÊä³ö
	  GPIO_Init(GPIOC, &GPIO_InitStructure);//³õʼ»¯PC  
	      
	  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;//ҪʹÓÃPA1,PA2,PA3  
    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;  
	  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//ÍÆÍìÊä³ö 
	    GPIO_Init(GPIOA, &GPIO_InitStructure);//³õʼ»¯PA  
	}  
	  
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);  
	}  
	  
  
	void func(void)  
	{  
	            GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3);//RGBÈ«²¿Ï¨Ãð  
	  
	    while(1)  
	        {  
	          GPIO_SetBits(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);//LEDÈ«²¿Ï¨Ãð  
	            delay_ms(100);  
	 
   						   
	  
	  				 GPIO_ResetBits(GPIOC,GPIO_Pin_3);//µãÁÁD4       
	          delay_ms(500);            
            GPIO_SetBits(GPIOC,GPIO_Pin_3);//ϨÃðD4  	
	          
     
						GPIO_ResetBits(GPIOC,GPIO_Pin_2);//µãÁÁD3  
	          delay_ms(500);    
	          GPIO_SetBits(GPIOC,GPIO_Pin_2);//ϨÃðD3   

							GPIO_ResetBits(GPIOC,GPIO_Pin_1);//µãÁÁD2  
	            delay_ms(500);  
	            GPIO_SetBits(GPIOC,GPIO_Pin_1);//ϨÃðD2  
	
						GPIO_ResetBits(GPIOC,GPIO_Pin_0);//µãÁÁD1  
	            delay_ms(500);  
	          GPIO_SetBits(GPIOC,GPIO_Pin_0);//ϨÃðD1 
					   
						 GPIO_ResetBits(GPIOC,GPIO_Pin_4);//µãÁÁD5  
	            delay_ms(500);  
	            GPIO_SetBits(GPIOC,GPIO_Pin_4);//ϨÃðD5     
                   			
	   		 GPIO_ResetBits(GPIOC,GPIO_Pin_5);//µãÁÁD6  
	            delay_ms(500);  
	            GPIO_SetBits(GPIOC,GPIO_Pin_5);//ϨÃðD6           	
				            
							GPIO_ResetBits(GPIOC,GPIO_Pin_6);//µãÁÁD7  
	            delay_ms(500);  
	            GPIO_SetBits(GPIOC,GPIO_Pin_6);//ϨÃðD7
							
      						 GPIO_ResetBits(GPIOC,GPIO_Pin_7);//µãÁÁD8  
	            delay_ms(500);  
	            GPIO_SetBits(GPIOC,GPIO_Pin_7);//ϨÃðD8   
 
 
 
	         

 


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

菜鸟
2014-10-29 12:09:16     打赏
5楼

按键切换程,按键次数数码管显示代码

 

(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//0
(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//1
(GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//2
(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);//3
(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);//4
(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);//5
(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//6
(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);//7
(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//8
(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);//9

================================================================

view plaincopy to clipboardprint?

1.    /* Includes ------------------------------------------------------------------*/

2.    #include "stm32f10x.h"

3.    #include "stm32_eval.h"

4.    GPIO_InitTypeDef GPIO_InitStructure;

5.   

6.    void RCC_Configuration(void)//始终配置

7.    {

8.    RCC_DeInit();//RCC寄存器重设为缺省值

9.   

10. RCC_HSICmd(ENABLE);//使能内部高速晶振

11. while(RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);//HSI晶振返回reset

12.

13. RCC_SYSCLKConfig(RCC_SYSCLKSource_HSI);//选择HSI作为系统时钟

14.

15. RCC_HSEConfig(RCC_HSE_OFF);//HSE晶振关

16. RCC_LSEConfig(RCC_LSE_OFF);//LSE晶振关

17. RCC_PLLConfig(RCC_PLLSource_HSI_Div2,RCC_PLLMul_9); // 72HMz

18. RCC_PLLCmd(ENABLE);//使能PLL状态

19. while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);

20. RCC_ADCCLKConfig(RCC_PCLK2_Div4);//ADC时钟=PCLK/4

21. RCC_PCLK2Config(RCC_HCLK_Div1);//APB2时钟=HCLK

22. RCC_PCLK1Config(RCC_HCLK_Div2);//APB1时钟=HCLK/2

23. RCC_HCLKConfig(RCC_SYSCLK_Div1);//AHB时钟=系统时钟

24. RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);//选择PLL作为系统时钟

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. }

35. void delay_us(u32 n)

36. {

37. u8 j;

38. while(n--)

39. for(j=0;j<10;j++);

40. }

41.

42. void delay_ms(u32 n)

43. {

44. while(n--)

45. delay_us(1000);

46. }

47.

48. int main (void)

49. {

50. char i=0;

51. RCC_Configuration();

52. /*初始化PC*/

53. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);

54. GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;

55. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

56. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;

57. GPIO_Init(GPIOC, &GPIO_InitStructure);

58. /*初始化PB*/

59. RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB, ENABLE);

60. 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;

61. GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;

62. GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;

63. GPIO_Init(GPIOB, &GPIO_InitStructure);

64. 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);

65.

66.

67. while(1){

68.

69. if(GPIO_ReadInputDataBit(GPIOA,GPIO_Pin_8)==0)

70. if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8))

71. {

72. delay_ms(100);if(!GPIO_ReadInputDataBit(GPIOC,GPIO_Pin_8)){i++;}

73. }

74.

75.

76.

77. if(i>31){i=0;}

78. GPIO_ResetBits(GPIOB,GPIO_Pin_1);

79. GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

80.

81. switch(i)

82. {

83. case 0 :

84. GPIO_SetBits(GPIOB,GPIO_Pin_1);

85. GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//0

86. break;

87. case 1 :

88. GPIO_SetBits(GPIOB,GPIO_Pin_1);

89. GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//1

90. break;

91. case 2 :

92. GPIO_SetBits(GPIOB,GPIO_Pin_1);

93. GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//2

94. break;

95. case 3 :

96. GPIO_SetBits(GPIOB,GPIO_Pin_1);

97. GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);//3

98. break;

99. case 4 :

100.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

101.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);//4

102.      break;

103.      case 5 :

104.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

105.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);//5

106.      break;

107.      case 6 :

108.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

109.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//6

110.      break;

111.      case 7 :

112.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

113.      GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);//7

114.      break;

115.      case 8 :

116.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

117.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);//8

118.      break;

119.      case 9 :

120.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

121.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);//9

122.      break;

123.      case 10 :

124.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

125.      GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

126.      delay_ms(100);

127.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

128.      GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

129.     

130.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

131.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

132.      delay_ms(50);

133.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

134.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//10

135.      break;

136.      case 11 :

137.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

138.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

139.      delay_ms(100);

140.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

141.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

142.     

143.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

144.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

145.      delay_ms(50);

146.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

147.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//11

148.      break;

149.      case 12 :

150.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

151.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

152.      delay_ms(100);

153.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

154.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

155.     

156.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

157.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

158.      delay_ms(50);

159.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

160.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//12

161.      break;

162.      case 13 :

163.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

164.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

165.      delay_ms(100);

166.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

167.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

168.     

169.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

170.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

171.      delay_ms(50);

172.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

173.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//13

174.      case 14 :

175.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

176.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);

177.      delay_ms(100);

178.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

179.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);

180.     

181.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

182.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

183.      delay_ms(50);

184.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

185.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//14

186.      break;

187.      case 15 :

188.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

189.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);

190.      delay_ms(100);

191.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

192.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);

193.     

194.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

195.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

196.      delay_ms(50);

197.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

198.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//15

199.      break;

200.      case 16 :

201.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

202.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

203.      delay_ms(100);

204.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

205.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

206.     

207.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

208.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

209.      delay_ms(50);

210.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

211.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//16

212.      break;

213.      case 17 :

214.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

215.      GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);

216.      delay_ms(100);

217.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

218.      GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);

219.     

220.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

221.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

222.      delay_ms(50);

223.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

224.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//17

225.      break;

226.      case 18 :

227.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

228.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

229.      delay_ms(100);

230.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

231.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

232.     

233.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

234.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

235.      delay_ms(50);

236.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

237.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//18

238.      break;

239.      case 19 :

240.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

241.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

242.      delay_ms(100);

243.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

244.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

245.     

246.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

247.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

248.      delay_ms(50);

249.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

250.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);//19

251.      break;

252.      case 20 :

253.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

254.      GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

255.      delay_ms(100);

256.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

257.      GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

258.     

259.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

260.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

261.      delay_ms(50);

262.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

263.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//20

264.      break;

265.      case 21 :

266.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

267.      GPIO_ResetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

268.      delay_ms(100);

269.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

270.      GPIO_SetBits(GPIOB,GPIO_Pin_9|GPIO_Pin_12);

271.     

272.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

273.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

274.      delay_ms(50);

275.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

276.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//21

277.      break;

278.      case 22 :

279.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

280.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

281.      delay_ms(100);

282.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

283.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

284.     

285.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

286.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

287.      delay_ms(50);

288.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

289.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//22

290.      break;

291.      case 23 :

292.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

293.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

294.      delay_ms(100);

295.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

296.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

297.     

298.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

299.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

300.      delay_ms(50);

301.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

302.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//23

303.      case 24 :

304.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

305.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);

306.      delay_ms(100);

307.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

308.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12);

309.     

310.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

311.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

312.      delay_ms(50);

313.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

314.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//24

315.      break;

316.      case 25 :

317.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

318.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);

319.      delay_ms(100);

320.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

321.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_14);

322.     

323.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

324.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

325.      delay_ms(50);

326.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

327.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//25

328.      break;

329.      case 26 :

330.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

331.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

332.      delay_ms(100);

333.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

334.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

335.     

336.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

337.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

338.      delay_ms(50);

339.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

340.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//26

341.      break;

342.      case 27 :

343.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

344.      GPIO_ResetBits (GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);

345.      delay_ms(100);

346.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

347.      GPIO_SetBits (GPIOB,GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12);

348.     

349.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

350.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

351.      delay_ms(50);

352.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

353.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//27

354.      break;

355.      case 28 :

356.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

357.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

358.      delay_ms(100);

359.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

360.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

361.     

362.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

363.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

364.      delay_ms(50);

365.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

366.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//28

367.      break;

368.      case 29 :

369.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

370.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

371.      delay_ms(100);

372.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

373.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

374.     

375.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

376.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

377.      delay_ms(50);

378.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

379.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//29

380.      break;

381.      case 30 :

382.     GPIO_SetBits(GPIOB,GPIO_Pin_1);

383.     GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

384.     delay_ms(100);

385.     GPIO_ResetBits(GPIOB,GPIO_Pin_1);

386.     GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

387.

388.     GPIO_SetBits(GPIOB,GPIO_Pin_15);

389.     GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);

390.     delay_ms(50);

391.     GPIO_ResetBits(GPIOB,GPIO_Pin_15);

392.     GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_13|GPIO_Pin_14);//30

393.      break;

394.      case 31 :

395.      GPIO_SetBits(GPIOB,GPIO_Pin_1);

396.      GPIO_ResetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

397.      delay_ms(100);

398.      GPIO_ResetBits(GPIOB,GPIO_Pin_1);

399.      GPIO_SetBits(GPIOB,GPIO_Pin_7|GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_13|GPIO_Pin_14);

401.     

402.      GPIO_SetBits(GPIOB,GPIO_Pin_15);

403.      GPIO_ResetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);

404.      delay_ms(50);

405.      GPIO_ResetBits(GPIOB,GPIO_Pin_15);

406.      GPIO_SetBits(GPIOB,GPIO_Pin_5|GPIO_Pin_7|GPIO_Pin_9|GPIO_Pin_12|GPIO_Pin_14);//31

407.      break;

408.      }

409.     

410.      }

 

411.    }

 


高工
2014-10-30 23:25:17     打赏
6楼

童鞋,您这是从yu33的帖子ctrl+c过来的吧


菜鸟
2014-11-27 22:25:57     打赏
7楼

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


#include "stm32f10x.h"  
#include "stm32_eval.h"  
#include 

EXTI_InitTypeDef   EXTI_InitStructure;  
GPIO_InitTypeDef   GPIO_InitStructure;  
NVIC_InitTypeDef   NVIC_InitStructure;  
USART_InitTypeDef USART_InitStructure;  
USART_ClockInitTypeDef USART_ClockInitStructure;  
/* Private function prototypes -----------------------------------------------*/  
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_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);  
}  
  
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);  
    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; 
  USART_InitStructure.USART_StopBits = USART_StopBits_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_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);  
   
  /* Configure four bit for preemption priority */  
  NVIC_PriorityGroupConfig(NVIC_PriorityGroup_4);  
  /* Enable the USART1 Interrupt */  
  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)  
{  
  /* Enable GPIOA clock */  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  
    
  /* Configure PA.00 pin as input floating */  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);  
  
  /* Enable AFIO clock */  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);  
  
  /* Connect EXTI0 Line to PA.00 pin */  
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource8);  
  
  /* Configure EXTI0 line */  
  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);  
  
  /* Enable and set EXTI0 Interrupt to the lowest priority */  
  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);  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);  
  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)  
{  
  /* Enable GPIOA clock */  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);  
    
  /* Configure PA.00 pin as input floating */  
  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11;  
  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;  
  GPIO_Init(GPIOA, &GPIO_InitStructure);  
  
  /* Enable AFIO clock */  
  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO, ENABLE);  
  
  /* Connect EXTI0 Line to PA.00 pin */  
  GPIO_EXTILineConfig(GPIO_PortSourceGPIOC, GPIO_PinSource11);  
  
  /* Configure EXTI0 line */  
  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);  
  
  /* Enable and set EXTI0 Interrupt to the lowest priority */  
  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_Line11) != RESET)  
  {  
     GPIO_SetBits(GPIOC,GPIO_Pin_3);  
     printf("S2 interrupt ......\r\n");  
     EXTI_ClearITPendingBit(EXTI_Line9);  
  }  
      
    if(EXTI_GetITStatus(EXTI_Line10) != RESET)  
  {  
     GPIO_SetBits(GPIOC,GPIO_Pin_2);  
     printf("S1 interrupt ......\r\n");  
     EXTI_ClearITPendingBit(EXTI_Line8);  
  }  
}  
void EXTI9_5_IRQHandler(void)  
{  
  if(EXTI_GetITStatus(EXTI_Line9) != RESET)  
  {  
     GPIO_SetBits(GPIOC,GPIO_Pin_1);  
     printf("S2 interrupt ......\r\n");  
     EXTI_ClearITPendingBit(EXTI_Line9);  
  }  
      
    if(EXTI_GetITStatus(EXTI_Line8) != RESET)  
  {   
     GPIO_SetBits(GPIOC,GPIO_Pin_0);  
     printf("S1 interrupt ......\r\n");  
     EXTI_ClearITPendingBit(EXTI_Line8);  
  }  
}  
  
  
#ifdef  USE_FULL_ASSERT  
  
void assert_failed(uint8_t* file, uint32_t line)  
{   
   
  while (1)  
  {  
  }  
}  
  
#endif  
  
  
  
#ifdef __GNUC__  
  /* With GCC/RAISONANCE, small printf (option LD Linker->Libraries->Small printf 
     set to 'Yes') calls __io_putchar() */  
  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)  
#else  
  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)  
#endif /* __GNUC__ */  
    
 
 PUTCHAR_PROTOTYPE  
{  
  /* Place your implementation of fputc here */  
  /* e.g. write a character to the USART */  
  USART_SendData(EVAL_COM1, (uint8_t) ch);  
  
  /* Loop until the end of transmission */  
  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  
  
/******************* (C) COPYRIGHT 2011 STMicroelectronics *****END OF FILE****/



高工
2014-11-27 23:05:58     打赏
8楼
就这了么,速度上菜。

菜鸟
2014-11-27 23:20:36     打赏
9楼

菜鸟
2014-12-04 12:09:03     打赏
10楼
view plaincopy to clipboardprint?
01.#include "stm32f10x.h"   
02.#include "stm32_eval.h"   
03.#include    
04.#define VREF 3.3   
05.GPIO_InitTypeDef   GPIO_InitStructure;   
06.USART_InitTypeDef USART_InitStructure;   
07.USART_ClockInitTypeDef USART_ClockInitStructure;   
08.  
09.void delay_us(u32 n)     
10.{     
11.    u8 j;     
12.    while(n--)     
13.    for(j=0;j<10;j++);     
14.}     
15.void  delay_ms(u32 n)     
16.{     
17.    while(n--)     
18.    delay_us(1000);     
19.}     
20.void RCC_Configuration(void)   
21.{   
22.    SystemInit();   
23.    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);   
24. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG   
25.RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD|RCC_APB2Periph_AFIO, ENABLE);   
26. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG   
27.  GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;   
28.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
29.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
30.  GPIO_Init(GPIOD, &GPIO_InitStructure);   
31.    GPIO_ResetBits(GPIOD,GPIO_Pin_2);   
32.    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC|RCC_APB2Periph_AFIO, ENABLE);   
33. GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE);//disable JTAG   
34.  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;   
35.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
36.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;   
37.  GPIO_Init(GPIOC, &GPIO_InitStructure);   
38.    GPIO_SetBits(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);   
39.      RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);   
40.}    
41.  
42.void USART_int(long BaudRate)   
43.{   
44.    RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA|RCC_APB2Periph_USART1,ENABLE);   
45.       GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;   
46.    GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
47.    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;    
48.    GPIO_Init(GPIOA, &GPIO_InitStructure);   
49.    /* PA10 USART1_Rx  */  
50.    GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;   
51.    GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;   
52.    GPIO_Init(GPIOA, &GPIO_InitStructure);   
53.  /* USARTx configured as follow:  
54.        - BaudRate = 115200 baud    
55.        - Word Length = 8 Bits  
56.        - One Stop Bit  
57.        - No parity  
58.        - Hardware flow control disabled (RTS and CTS signals)  
59.        - Receive and transmit enabled  
60.  */  
61.  USART_InitStructure.USART_BaudRate = BaudRate;//??????   
62.  USART_InitStructure.USART_WordLength = USART_WordLength_8b;//???????8bit   
63.  USART_InitStructure.USART_StopBits = USART_StopBits_1;//????1   
64.  USART_InitStructure.USART_Parity = USART_Parity_No;//????   
65.  USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;//??????none   
66.  USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;//??????????   
67.    USART_ClockInitStructure.USART_Clock = USART_Clock_Disable;        
68.    USART_ClockInitStructure.USART_CPOL = USART_CPOL_Low;         
69.    USART_ClockInitStructure.USART_CPHA = USART_CPHA_2Edge;         
70.    USART_ClockInitStructure.USART_LastBit = USART_LastBit_Disable;   
71.    USART_ClockInit(USART1, &USART_ClockInitStructure);   
72.  USART_Init(USART1, &USART_InitStructure);   
73.  USART_Cmd(USART1, ENABLE);   
74.    USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);   
75. USART_Cmd(USART1, ENABLE);   
76.}   
77.  
78.void PWM_Config()   
79.{uint16_t PrescalerValue = 0;//预分频器值   
80.    TIM_TimeBaseInitTypeDef  TIM_TimeBaseStructure;   
81.TIM_OCInitTypeDef  TIM_OCInitStructure;   
82.    /* TIM2 clock enable */  
83.  RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);   
84.  /* GPIOA  enable */  
85.  RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO  , ENABLE);//使能复用功能时钟   
86.       
87.        GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_2|GPIO_Pin_3;   
88.  GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;//复用推挽输出   
89.  GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;   
90.  GPIO_Init(GPIOA, &GPIO_InitStructure);   
91.       
92.        TIM_Cmd(TIM2, ENABLE);//TIM2使能   
93.      /* Compute the prescaler value */  
94.  PrescalerValue = (uint16_t) (SystemCoreClock / 24000000) - 1;   
95.  /* Time base configuration */  
96.  TIM_TimeBaseStructure.TIM_Period = 0x07FF;//设置自动重装载   
97.  TIM_TimeBaseStructure.TIM_Prescaler = PrescalerValue;//设置预分频值   
98.  TIM_TimeBaseStructure.TIM_ClockDivision = 0;//设置时钟分割TDTS=Tck_tim   
99.  TIM_TimeBaseStructure.TIM_CounterMode = TIM_CounterMode_Up;//向上计数   
100.  TIM_TimeBaseInit(TIM2, &TIM_TimeBaseStructure);//根据指定参数初始化TIMx   
101.  TIM_OCInitStructure.TIM_OCMode = TIM_OCMode_PWM1;//选择PWM模式1   
102.  TIM_OCInitStructure.TIM_OCPolarity = TIM_OCPolarity_High;//输出极性高   
103.  /* PWM1 Mode configuration: Channel2 */  
104.  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
105.  TIM_OCInitStructure.TIM_Pulse = 0xFFFF;//通道占空比时间   
106.  TIM_OC2Init(TIM2, &TIM_OCInitStructure);//初始化TIM2 OC2   
107.    /* PWM1 Mode configuration: Channel3 */  
108.  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;//比较输出使能   
109.  TIM_OCInitStructure.TIM_Pulse = 0xFFFF;//通道占空比时间   
110.  TIM_OC3Init(TIM2, &TIM_OCInitStructure);//初始化TIM2 OC3   
111.    /* PWM1 Mode configuration: Channel4 */  
112.  TIM_OCInitStructure.TIM_OutputState = TIM_OutputState_Enable;   
113.  TIM_OCInitStructure.TIM_Pulse = 0xFFFF;//通道占空比时间   
114.  TIM_OC4Init(TIM2, &TIM_OCInitStructure);//初始化TIM2 OC4   
115.       
116.  TIM_ARRPreloadConfig(TIM2, ENABLE);//使能预装载寄存器   
117.}   
118.  
119.void PWM_TEST()   
120.{ unsigned int temp0,temp1,temp2;   
121.    printf("PWM-RGB TEST......\r\n");   
122.    while(1)   
123.    {   
124.   if(temp0=0,temp1=2047,temp2=2047)   
125.           {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
126.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
127.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
128.      }   
129.    if(temp0=2047,temp1=0,temp2=2047)   
130.          {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
131.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
132.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
133.          }   
134.    if(temp0=2047,temp1=2047,temp2=0)   
135.             {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
136.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
137.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
138.            }   
139.    if(temp0=250,temp1=1750,temp2=1750)   
140.             {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
141.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
142.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
143.            }              
144.  if(temp0=500,temp1=250,temp2=1750)   
145.             {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
146.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
147.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
148.            }                                      
149.    if(temp0=500,temp1=1500,temp2=1000)   
150.             {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
151.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
152.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
153.            }              
154.   if(temp0=1250,temp1=750,temp2=1250)   
155.             {TIM_SetCompare2(TIM2,temp0);delay_ms(500);    
156.       TIM_SetCompare3(TIM2,temp1);delay_ms(500);         
157.       TIM_SetCompare4(TIM2,temp2);delay_ms(500);   
158.            }                  
159.         }   
160.}   
161.int main(void)   
162.{      
163.  RCC_Configuration();   
164.USART_int(115200);   
165.    printf(" config done...\r\n");   
166.    PWM_Config();   
167.    delay_ms(1000);   
168.    while(1)   
169.    {   
170.        PWM_TEST();   
171.    }   
172.}   
173.#ifdef  USE_FULL_ASSERT   
174.void assert_failed(uint8_t* file, uint32_t line)   
175.{while (1)   
176.  {   
177.  }   
178.}   
179.#endif   
180./**  
181.  * @}  
182.  */    
183./**  
184.  * @}  
185.  */    
186.#ifdef __GNUC__   
187.  #define PUTCHAR_PROTOTYPE int __io_putchar(int ch)   
188.#else   
189.  #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f)   
190.#endif /* __GNUC__ */   
191.PUTCHAR_PROTOTYPE   
192.{   
193.  USART_SendData(EVAL_COM1, (uint8_t) ch);   
194.  /* Loop until the end of transmission */  
195.  while (USART_GetFlagStatus(EVAL_COM1, USART_FLAG_TC) == RESET)   
196.  {}   
197.  return ch;   
198.}   
199.#ifdef  USE_FULL_ASSERT   
200.etval None   
201.  */   
202.void assert_failed(uint8_t* file, uint32_t line)   
203.{    
204.  while (1)   
205.  {   
206.  }   
207.}   
208.#endif  

 


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

回复

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