Guest User

ADC problem

a guest
Aug 14th, 2015
265
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 15.01 KB | None | 0 0
  1. #include "stm32fxxx_hal.h"
  2. #include "defines.h"
  3. #include "tm_stm32_disco.h"
  4. #include "tm_stm32_delay.h"
  5. #include "tm_stm32_touch.h"
  6. #include "tm_stm32_lcd.h"
  7.  
  8. TM_TOUCH_t TS;
  9.  
  10. ADC_HandleTypeDef hadc3;
  11.  
  12. TIM_HandleTypeDef TIM_Handle;
  13.  
  14. static void MainMenu(void);
  15. static void TimerSeven(void);
  16. static void Additional(void);
  17. static void Systema(void);
  18. static void Welcome(void);
  19. static void ControlMenu(void);
  20. static void ControlMenuPush(void);
  21. static void GPIO_Init(void);
  22. static void MX_ADC3_Init(void);
  23. static void StepperToLeft(void);
  24. static void StepperStop(void);
  25.  
  26. static void MX_ADC3_Init(void);
  27.  
  28. TM_FONT_SIZE_t FontSize;
  29.  
  30. volatile unsigned int zaehl=0;
  31.  
  32. char str[200]; // Touch
  33.  
  34. char ueberschrift[]="W E L C O M E";
  35. char ueberschrift2[]="";
  36. char ueberschrift3[]="*************";
  37.  
  38. char option1[]="Monitor";
  39. char option2[]="Control";
  40. char option3[]="System";
  41. char option4[]="";
  42.  
  43. char control_option1[]="Manual";
  44. char control_option2[]="Automatic";
  45. char control_option3[]="Other";
  46.  
  47. char control_manual1[]="ON";
  48. char control_manual2[]="OFF";
  49. char control_manual3[]="LEFT";
  50. char control_manual4[]="RIGHT";
  51.  
  52. char breite[]="0";
  53. char hoehe[]="0";
  54. char zeit[]="0";
  55. char pclk1[]="0";
  56. char hclk[]="0";
  57. char sysclock[]="0";
  58. char pclk2[]="0";
  59. char minute[]="0";
  60. char adceins[]="0";
  61.  
  62. char str[200];
  63.  
  64. int location=0;
  65. int a=0;
  66.  
  67. int value=0;
  68. int dauer=10;
  69. int zaehler=0;
  70. int z3=0;
  71. int wuha=0;
  72.  
  73.  
  74.  
  75.  
  76. int main(void) {
  77.  
  78. uint8_t i;
  79.  
  80. TimerSeven();
  81.  
  82.  
  83. TM_RCC_InitSystem();
  84. HAL_Init();
  85. TM_LCD_Init();
  86.  
  87.  
  88.  
  89. GPIO_Init();
  90.  
  91. MX_ADC3_Init();
  92.  
  93.  
  94. TM_LCD_SetOrientation(1);
  95. TM_LCD_Fill(0x0000);
  96.  
  97. TS.Orientation = TM_LCD_GetOrientation();
  98. TM_TOUCH_Init(NULL, &TS);
  99.  
  100. TM_DELAY_Init();
  101. TM_TOUCH_Init(NULL, &TS);
  102.  
  103. Welcome();
  104.  
  105. MainMenu();
  106.  
  107. //HAL_ADC_Start(&hadc3);
  108. HAL_ADC_Start(&hadc3);
  109.  
  110.  
  111.  
  112. while (1) {
  113.  
  114. wuha = HAL_ADC_GetValue(&hadc3);
  115. sprintf(str, "Value : %3d", wuha);
  116. TM_LCD_SetXY(200, 200);
  117. TM_LCD_SetColors(0x0000, 0xFFFF);
  118. TM_LCD_Puts(str);
  119.  
  120. TM_TOUCH_Read(&TS);
  121.  
  122. if (TS.NumPresses) {
  123.  
  124. //sprintf(str, "X: %3d Y: %3d", TS.X[0], TS.Y[0]);
  125. //TM_LCD_SetXY(180, 0);
  126. //TM_LCD_Puts(str);
  127.  
  128.  
  129. // Monitor Button
  130. if(TS.X[0]<=120 && TS.Y[0]>=203){
  131.  
  132.  
  133. if(location==1){
  134. TM_LCD_SetXY(200, 0);
  135. TM_LCD_SetColors(0x0000, 0xFFFF);
  136. //TM_LCD_Puts("Location=1");
  137.  
  138. }
  139.  
  140. else{
  141. location=1;
  142. TM_LCD_DrawFilledRectangle(0, 0, 480, 203, 0x0000);
  143. }
  144. }
  145.  
  146.  
  147. //Control Button
  148. if(TS.X[0] >120 && TS.X[0] <=240 && TS.Y[0]>=203){
  149.  
  150. if (location==2){
  151.  
  152. TM_LCD_SetXY(200, 0);
  153. TM_LCD_SetColors(0x0000, 0xFFFF);
  154. //TM_LCD_Puts("Location=2");
  155.  
  156.  
  157. //TM_TOUCH_Read(&TS);
  158. //if (TS.NumPresses){
  159. //if(TS.X[0]>=360 && TS.Y[0]<=68){
  160.  
  161. }
  162.  
  163. else{
  164.  
  165. location=2;
  166. TM_LCD_DrawFilledRectangle(0, 0, 480, 203, 0x0000);
  167. ControlMenu();
  168.  
  169.  
  170. }
  171. }
  172.  
  173. // System Button
  174.  
  175. if(TS.X[0]>240 && TS.X[0]<=360 && TS.Y[0]>=203){
  176.  
  177.  
  178. if (location==3){
  179.  
  180. TM_LCD_SetXY(200, 0);
  181. TM_LCD_SetColors(0x0000, 0xFFFF);
  182. //TM_LCD_Puts("Location=3");
  183. }
  184.  
  185. else{
  186.  
  187. location=3;
  188. TM_LCD_DrawFilledRectangle(0, 0, 480, 203, 0x0000);
  189. Systema();
  190.  
  191. }
  192.  
  193. }
  194.  
  195. // Circle Button
  196.  
  197. if(TS.X[0]>360 && TS.X[0] <=480 && TS.Y[0]>=203){
  198. location=4;
  199. TM_LCD_DrawFilledRectangle(0, 0, 480, 272, 0x0000);
  200.  
  201.  
  202. }
  203.  
  204.  
  205. // Control Extramenue
  206. if(TS.X[0]>=360 && TS.Y[0]<68){
  207.  
  208. if(location==2){
  209. location=5;
  210. TM_LCD_SetXY(200, 0);
  211. TM_LCD_SetColors(0x0000, 0xFFFF);
  212. TM_LCD_Puts("Location=5");
  213.  
  214. //Button ON
  215.  
  216. TM_LCD_DrawRectangle(0, 0, 120, 68, 0xFFFF);
  217. TM_FONT_GetStringSize(control_manual1, &FontSize, &TM_Font_11x18);
  218. TM_LCD_SetXY((60-(FontSize.Width/2)), 34 - (FontSize.Height/2));
  219. TM_LCD_SetColors(0xFBE4, 0x0000);
  220. TM_LCD_Puts(control_manual1);
  221.  
  222.  
  223. //Button OFF
  224.  
  225. TM_LCD_DrawRectangle(0, 68, 120, 68, 0xFFFF);
  226. TM_FONT_GetStringSize(control_manual2, &FontSize, &TM_Font_11x18);
  227. TM_LCD_SetXY((60-(FontSize.Width/2)), 102 - (FontSize.Height/2));
  228. TM_LCD_SetColors(0xFBE4, 0x0000);
  229. TM_LCD_Puts(control_manual2);
  230.  
  231. //Button Left
  232. TM_LCD_DrawRectangle(120, 0, 120, 68, 0xFFFF);
  233. TM_FONT_GetStringSize(control_manual3, &FontSize, &TM_Font_11x18);
  234. TM_LCD_SetXY((180-(FontSize.Width/2)), 34 - (FontSize.Height/2));
  235. TM_LCD_SetColors(0xFBE4, 0x0000);
  236. TM_LCD_Puts(control_manual3);
  237.  
  238. //Button Right
  239. TM_LCD_DrawRectangle(120, 68, 120, 68, 0xFFFF);
  240. TM_FONT_GetStringSize(control_manual4, &FontSize, &TM_Font_11x18);
  241. TM_LCD_SetXY((180-(FontSize.Width/2)), 102 - (FontSize.Height/2));
  242. TM_LCD_SetColors(0xFBE4, 0x0000);
  243. TM_LCD_Puts(control_manual4);
  244.  
  245.  
  246. }
  247. }
  248.  
  249. if(TS.X[0]>=0 && TS.X[0]<120 && TS.Y[0]<68){
  250.  
  251. if(location==5){
  252.  
  253. TM_LCD_SetXY(200, 0);
  254. TM_LCD_SetColors(0x0000, 0xFFFF);
  255. TM_LCD_Puts("Location=6");
  256. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 1);
  257.  
  258. }
  259.  
  260. }
  261.  
  262. if(TS.X[0]>=0 && TS.X[0]<120 && TS.Y[0]>68 && TS.Y[0]<=136){
  263.  
  264. if(location==5){
  265.  
  266. TM_LCD_SetXY(200, 0);
  267. TM_LCD_SetColors(0x0000, 0xFFFF);
  268. TM_LCD_Puts("Location=7");
  269. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 0);
  270.  
  271. }
  272.  
  273. }
  274.  
  275. if(TS.X[0]>=120 && TS.X[0]<240 && TS.Y[0]<68){
  276.  
  277. if(location==5){
  278.  
  279. TM_LCD_SetXY(200, 0);
  280. TM_LCD_SetColors(0x0000, 0xFFFF);
  281. TM_LCD_Puts("Location=8");
  282.  
  283.  
  284. StepperToLeft();
  285.  
  286.  
  287.  
  288. }
  289.  
  290. }
  291.  
  292. if(TS.X[0]>=120 && TS.X[0]<240 && TS.Y[0]>68 && TS.Y[0]<=136){
  293.  
  294. if(location==5){
  295.  
  296. TM_LCD_SetXY(200, 0);
  297. TM_LCD_SetColors(0x0000, 0xFFFF);
  298. TM_LCD_Puts("Location=9");
  299.  
  300.  
  301. StepperStop();
  302.  
  303. }
  304.  
  305. }
  306.  
  307. }
  308. }
  309. }
  310.  
  311.  
  312.  
  313. void TIM7_IRQHandler(void)
  314. {
  315.  
  316. __HAL_TIM_CLEAR_FLAG(&TIM_Handle, TIM_FLAG_UPDATE);
  317.  
  318. //value = HAL_ADC_GetValue(&hadc3);
  319.  
  320. zaehl=zaehl+1;
  321.  
  322. TM_LCD_SetColors(0x0000, 0xFFFF);
  323. TM_LCD_SetXY(0, 50);
  324.  
  325.  
  326. if (location==3){
  327. sprintf(zeit, "An Zeit: %d s", zaehl);
  328. TM_LCD_Puts(zeit);
  329. }
  330. //if(zaehl>=60){
  331. //TM_LCD_SetColors(0x0000, 0xFFFF);
  332. //TM_LCD_SetXY(180, 50);
  333. //sprintf(minute, "= %d min", zaehl/60);
  334. //TM_LCD_Puts(minute);
  335. //}
  336. }
  337.  
  338. void StepperToLeft(){
  339.  
  340.  
  341. for(z3=0;z3<=50;z3++){
  342.  
  343. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, 0);
  344. HAL_Delay(dauer);
  345. HAL_Delay(dauer);
  346. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_7, 1);
  347. HAL_Delay(dauer);
  348. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 0);
  349. HAL_Delay(dauer);
  350. HAL_GPIO_WritePin(GPIOH, GPIO_PIN_6, 0);
  351. HAL_Delay(dauer);
  352. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, 0);
  353. HAL_Delay(dauer);
  354.  
  355. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_7, 0);
  356. HAL_Delay(dauer);
  357. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 1);
  358. HAL_Delay(dauer);
  359. HAL_GPIO_WritePin(GPIOH, GPIO_PIN_6, 0);
  360. HAL_Delay(dauer);
  361. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, 0);
  362. HAL_Delay(dauer);
  363.  
  364. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_7, 0);
  365. HAL_Delay(dauer);
  366. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 0);
  367. HAL_Delay(dauer);
  368. HAL_GPIO_WritePin(GPIOH, GPIO_PIN_6, 1);
  369. HAL_Delay(dauer);
  370. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, 0);
  371. HAL_Delay(dauer);
  372.  
  373. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_7, 0);
  374. HAL_Delay(dauer);
  375. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 0);
  376. HAL_Delay(dauer);
  377. HAL_GPIO_WritePin(GPIOH, GPIO_PIN_6, 0);
  378. HAL_Delay(dauer);
  379. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, 1);
  380. HAL_Delay(dauer);
  381. HAL_Delay(dauer);
  382.  
  383.  
  384. }
  385. }
  386.  
  387. void StepperStop(){
  388.  
  389.  
  390. HAL_GPIO_WritePin(GPIOG, GPIO_PIN_7, 0);
  391.  
  392. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_2, 0);
  393.  
  394. HAL_GPIO_WritePin(GPIOH, GPIO_PIN_6, 0);
  395.  
  396. HAL_GPIO_WritePin(GPIOI, GPIO_PIN_3, 0);
  397.  
  398. }
  399.  
  400.  
  401.  
  402. void MainMenu(void){
  403.  
  404. //Untermenue
  405.  
  406. //TM_LCD_SetColors(uint32_t Foreground, uint32_t Background)
  407.  
  408. //Button 1
  409. TM_LCD_DrawRectangle(0, 203, 120, 68, 0xFFFF);
  410. TM_FONT_GetStringSize(option1, &FontSize, &TM_Font_11x18);
  411. TM_LCD_SetXY((60-FontSize.Width/2), 225);
  412. TM_LCD_SetColors(0xFFFF, 0x0000);
  413. TM_LCD_Puts(option1);
  414.  
  415. //Button 2
  416. TM_LCD_DrawRectangle(120, 203, 120, 68, 0xFFFF);
  417. TM_FONT_GetStringSize(option2, &FontSize, &TM_Font_11x18);
  418. TM_LCD_SetXY((160-FontSize.Height), 225);
  419. TM_LCD_SetColors(0xFFFF, 0x0000);
  420. TM_LCD_Puts(option2);
  421.  
  422. //Button 3
  423. TM_LCD_DrawRectangle(240, 203, 120, 68, 0xFFFF);
  424. TM_FONT_GetStringSize(option3, &FontSize, &TM_Font_11x18);
  425. TM_LCD_SetXY((280-FontSize.Height), 225);
  426. TM_LCD_SetColors(0xFFFF, 0x0000);
  427. TM_LCD_Puts(option3);
  428.  
  429. //Button 4
  430. TM_LCD_DrawRectangle(360, 203, 120, 68, 0xFFFF);
  431. TM_LCD_DrawFilledCircle(420, 238, 15, 0xFFFF);
  432. //TM_FONT_GetStringSize(option4, &FontSize, &TM_Font_11x18);
  433. //TM_LCD_SetXY((400-FontSize.Height), 220);
  434. //TM_LCD_SetColors(0xFFFF, 0x0000);
  435. //TM_LCD_Puts(option4);
  436.  
  437. }
  438.  
  439. void ControlMenu(void){
  440.  
  441. //Button 1
  442. TM_LCD_DrawRectangle(360, 0, 120, 68, 0xFFFF);
  443.  
  444. TM_FONT_GetStringSize(control_option1, &FontSize, &TM_Font_11x18);
  445. TM_LCD_SetXY((420-(FontSize.Width/2)), 34 - (FontSize.Height/2));
  446. TM_LCD_SetColors(0xF800, 0x0000);
  447. TM_LCD_Puts(control_option1);
  448.  
  449. //Button 2
  450. TM_LCD_DrawRectangle(360, 68, 120, 68, 0xFFFF);
  451.  
  452. TM_FONT_GetStringSize(control_option2, &FontSize, &TM_Font_11x18);
  453. TM_LCD_SetXY((420-(FontSize.Width/2)), 102 - (FontSize.Height/2));
  454. TM_LCD_SetColors(0xF800, 0x0000);
  455. TM_LCD_Puts(control_option2);
  456.  
  457. //Button 3
  458. TM_LCD_DrawRectangle(360, 136, 120, 66, 0xFFFF);
  459.  
  460. TM_FONT_GetStringSize(control_option3, &FontSize, &TM_Font_11x18);
  461. TM_LCD_SetXY((420-(FontSize.Width/2)), 170 - (FontSize.Height/2));
  462. TM_LCD_SetColors(0xF800, 0x0000);
  463. TM_LCD_Puts(control_option3);
  464.  
  465. }
  466.  
  467.  
  468. void TimerSeven(void){
  469.  
  470. __TIM7_CLK_ENABLE();
  471.  
  472. TIM_Handle.Init.Prescaler = 54000;
  473. TIM_Handle.Init.CounterMode = TIM_COUNTERMODE_UP;
  474. TIM_Handle.Init.Period = 2000;
  475. TIM_Handle.Instance = TIM7; //Same timer whose clocks we enabled
  476. HAL_TIM_Base_Init(&TIM_Handle); // Init timer
  477. HAL_TIM_Base_Start_IT(&TIM_Handle); // start timer interrupts
  478. HAL_NVIC_SetPriority(TIM7_IRQn, 0, 1);
  479. HAL_NVIC_EnableIRQ(TIM7_IRQn);
  480.  
  481. HAL_NVIC_SetPriority(ADC_IRQn, 0, 0);
  482. HAL_NVIC_EnableIRQ(ADC_IRQn);
  483.  
  484.  
  485. }
  486.  
  487. void Additional(void){
  488. //Button 5
  489. TM_LCD_DrawRectangle(360, 0, 120, 203, 0xFFFF);
  490. TM_FONT_GetStringSize(option4, &FontSize, &TM_Font_11x18);
  491. TM_LCD_SetXY((400-FontSize.Height), 220);
  492. TM_LCD_SetColors(0xFFFF, 0x0000);
  493. TM_LCD_Puts(option4);
  494. }
  495.  
  496. void Systema(void){
  497.  
  498. TM_LCD_SetXY(0, 0);
  499. sprintf(breite, "Breite: %d", TM_LCD_GetWidth());
  500. TM_LCD_Puts(breite);
  501.  
  502. TM_LCD_SetXY(0, 25);
  503. sprintf(hoehe, "Hoehe: %d", TM_LCD_GetHeight());
  504. TM_LCD_Puts(hoehe);
  505.  
  506. TM_LCD_SetXY(0, 50);
  507. sprintf(zeit, "An Zeit: %d s", zaehl);
  508. TM_LCD_Puts(zeit);
  509.  
  510.  
  511. TM_LCD_SetColors(0x0000, 0xFFFF);
  512. TM_LCD_SetXY(0, 75);
  513. sprintf(pclk1, "PCLK1: %d MHz", HAL_RCC_GetPCLK1Freq()/1000000);
  514. TM_LCD_Puts(pclk1);
  515.  
  516. TM_LCD_SetColors(0x0000, 0xFFFF);
  517. TM_LCD_SetXY(0, 100);
  518. sprintf(pclk2, "PCLK2: %d MHz", HAL_RCC_GetPCLK2Freq()/1000000);
  519. TM_LCD_Puts(pclk2);
  520.  
  521. TM_LCD_SetColors(0x0000, 0xFFFF);
  522. TM_LCD_SetXY(0, 125);
  523. sprintf(hclk, "HCLK: %d MHz", HAL_RCC_GetHCLKFreq()/1000000);
  524. TM_LCD_Puts(hclk);
  525.  
  526. TM_LCD_SetColors(0x0000, 0xFFFF);
  527. TM_LCD_SetXY(0, 150);
  528. sprintf(sysclock, "SCLK: %d MHz", HAL_RCC_GetSysClockFreq()/1000000);
  529. TM_LCD_Puts(sysclock);
  530.  
  531. TM_LCD_SetColors(0x0000, 0xFFFF);
  532. TM_LCD_SetXY(200, 150);
  533. sprintf(adceins, "Voltage: %d ", value);
  534. TM_LCD_Puts(adceins);
  535. }
  536.  
  537. void Welcome(void){
  538.  
  539. TM_LCD_SetColors(0xFFFF, 0x0000);
  540.  
  541. TM_LCD_SetFont(&TM_Font_11x18);
  542. TM_FONT_GetStringSize(ueberschrift, &FontSize, &TM_Font_11x18);
  543.  
  544. TM_LCD_SetXY((TM_LCD_GetWidth() - FontSize.Width) / 2, 15);
  545. TM_LCD_Puts(ueberschrift);
  546.  
  547. TM_LCD_SetXY((TM_LCD_GetWidth() - FontSize.Width) / 2, 35);
  548. TM_LCD_Puts(ueberschrift3);
  549.  
  550. TM_LCD_SetXY((TM_LCD_GetWidth() - FontSize.Width) / 2, 50);
  551. TM_LCD_Puts(ueberschrift2);
  552.  
  553. }
  554.  
  555. void GPIO_Init(){
  556.  
  557. GPIO_InitTypeDef GPIO_InitStruct;
  558.  
  559.  
  560. __GPIOI_CLK_ENABLE();
  561. __GPIOH_CLK_ENABLE();
  562. __GPIOA_CLK_ENABLE();
  563. __GPIOG_CLK_ENABLE();
  564. __ADC3_CLK_ENABLE();
  565.  
  566.  
  567. GPIO_InitStruct.Pin = GPIO_PIN_0;
  568. GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  569. GPIO_InitStruct.Pull = GPIO_NOPULL;
  570. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  571.  
  572. HAL_NVIC_SetPriority(ADC_IRQn, 0, 0);
  573. HAL_NVIC_EnableIRQ(ADC_IRQn);
  574.  
  575. //__ADC1_CLK_ENABLE();
  576.  
  577. //GPIOI
  578. GPIO_InitStruct.Pin = GPIO_PIN_2 | GPIO_PIN_3;
  579. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  580. GPIO_InitStruct.Pull = GPIO_NOPULL;
  581. GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  582. HAL_GPIO_Init(GPIOI, &GPIO_InitStruct);
  583.  
  584. //GPIOH
  585. GPIO_InitStruct.Pin = GPIO_PIN_6;
  586. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  587. GPIO_InitStruct.Pull = GPIO_NOPULL;
  588. GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  589. HAL_GPIO_Init(GPIOH, &GPIO_InitStruct);
  590.  
  591. //GPIOA
  592.  
  593. GPIO_InitStruct.Pin = GPIO_PIN_8;
  594. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  595. GPIO_InitStruct.Pull = GPIO_NOPULL;
  596. GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  597. HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  598.  
  599.  
  600. //GPIOG
  601.  
  602. GPIO_InitStruct.Pin = GPIO_PIN_7 | GPIO_PIN_6;
  603. GPIO_InitStruct.Mode = GPIO_MODE_OUTPUT_PP;
  604. GPIO_InitStruct.Pull = GPIO_NOPULL;
  605. GPIO_InitStruct.Speed = GPIO_SPEED_HIGH;
  606. HAL_GPIO_Init(GPIOG, &GPIO_InitStruct);
  607.  
  608.  
  609.  
  610.  
  611. /**ADC1 GPIO Configuration
  612. PA0/WKUP ------> ADC1_IN0
  613. */
  614. //GPIO_InitStruct.Pin = GPIO_PIN_0;
  615. //GPIO_InitStruct.Mode = GPIO_MODE_ANALOG;
  616. //GPIO_InitStruct.Pull = GPIO_NOPULL;
  617. //HAL_GPIO_Init(GPIOA, &GPIO_InitStruct);
  618.  
  619. }
  620.  
  621.  
  622. void MX_ADC3_Init(void)
  623. {
  624.  
  625. ADC_ChannelConfTypeDef sConfig;
  626.  
  627. /**Configure the global features of the ADC (Clock, Resolution, Data Alignment and number of conversion)
  628. */
  629. hadc3.Instance = ADC3;
  630. hadc3.Init.ClockPrescaler = ADC_CLOCKPRESCALER_PCLK_DIV4;
  631. hadc3.Init.Resolution = ADC_RESOLUTION12b;
  632. hadc3.Init.ScanConvMode = DISABLE;
  633. hadc3.Init.ContinuousConvMode = ENABLE;
  634. hadc3.Init.DiscontinuousConvMode = DISABLE;
  635. hadc3.Init.ExternalTrigConvEdge = ADC_EXTERNALTRIGCONVEDGE_NONE;
  636. hadc3.Init.DataAlign = ADC_DATAALIGN_RIGHT;
  637. hadc3.Init.NbrOfConversion = 1;
  638. hadc3.Init.DMAContinuousRequests = DISABLE;
  639. hadc3.Init.EOCSelection = EOC_SINGLE_CONV;
  640. HAL_ADC_Init(&hadc3);
  641.  
  642. /**Configure for the selected ADC regular channel its corresponding rank in the sequencer and its sample time.
  643. */
  644. sConfig.Channel = ADC_CHANNEL_0;
  645. sConfig.Rank = 1;
  646. sConfig.SamplingTime = ADC_SAMPLETIME_3CYCLES;
  647. HAL_ADC_ConfigChannel(&hadc3, &sConfig);
  648.  
  649. }
  650.  
  651.  
  652. void ADC_IRQHandler(void)
  653. {
  654. /* USER CODE BEGIN ADC_IRQn 0 */
  655.  
  656. /* USER CODE END ADC_IRQn 0 */
  657. HAL_ADC_IRQHandler(&hadc3);
  658. /* USER CODE BEGIN ADC_IRQn 1 */
  659.  
  660. /* USER CODE END ADC_IRQn 1 */
  661. }
Advertisement
Add Comment
Please, Sign In to add comment