Browse Source

implement ADC and USART

Yohan Simard 3 years ago
parent
commit
76fd320df4
7 changed files with 276 additions and 38 deletions
  1. 100
    17
      MDK-ARM/Project.uvoptx
  2. 43
    20
      MDK-ARM/Project.uvprojx
  3. 51
    0
      MyDrivers/ADC.c
  4. 11
    0
      MyDrivers/ADC.h
  5. 57
    0
      MyDrivers/USART.c
  6. 5
    0
      MyDrivers/USART.h
  7. 9
    1
      Src/main.c

+ 100
- 17
MDK-ARM/Project.uvoptx View File

@@ -345,7 +345,7 @@
345 345
         <SetRegEntry>
346 346
           <Number>0</Number>
347 347
           <Key>DLGDARM</Key>
348
-          <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=-1,-1,-1,-1,0)(121=-1,-1,-1,-1,0)(122=-1,-1,-1,-1,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=-1,-1,-1,-1,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
348
+          <Name>(1010=-1,-1,-1,-1,0)(1007=-1,-1,-1,-1,0)(1008=-1,-1,-1,-1,0)(1009=-1,-1,-1,-1,0)(100=-1,-1,-1,-1,0)(110=-1,-1,-1,-1,0)(111=-1,-1,-1,-1,0)(1011=-1,-1,-1,-1,0)(180=-1,-1,-1,-1,0)(120=100,129,658,654,0)(121=-1,-1,-1,-1,0)(122=1005,156,1563,681,0)(123=-1,-1,-1,-1,0)(140=-1,-1,-1,-1,0)(240=-1,-1,-1,-1,0)(190=-1,-1,-1,-1,0)(200=-1,-1,-1,-1,0)(170=-1,-1,-1,-1,0)(130=-1,-1,-1,-1,0)(131=-1,-1,-1,-1,0)(132=-1,-1,-1,-1,0)(133=-1,-1,-1,-1,0)(160=1238,79,1832,588,0)(161=-1,-1,-1,-1,0)(162=-1,-1,-1,-1,0)(210=-1,-1,-1,-1,0)(211=-1,-1,-1,-1,0)(220=-1,-1,-1,-1,0)(221=-1,-1,-1,-1,0)(230=-1,-1,-1,-1,0)(234=-1,-1,-1,-1,0)(231=-1,-1,-1,-1,0)(232=-1,-1,-1,-1,0)(233=-1,-1,-1,-1,0)(150=-1,-1,-1,-1,0)(151=-1,-1,-1,-1,0)</Name>
349 349
         </SetRegEntry>
350 350
         <SetRegEntry>
351 351
           <Number>0</Number>
@@ -382,9 +382,9 @@
382 382
         <Bp>
383 383
           <Number>0</Number>
384 384
           <Type>0</Type>
385
-          <LineNumber>46</LineNumber>
385
+          <LineNumber>39</LineNumber>
386 386
           <EnabledFlag>1</EnabledFlag>
387
-          <Address>134219406</Address>
387
+          <Address>134224104</Address>
388 388
           <ByteObject>0</ByteObject>
389 389
           <HtxType>0</HtxType>
390 390
           <ManyObjects>0</ManyObjects>
@@ -393,16 +393,44 @@
393 393
           <BreakIfRCount>1</BreakIfRCount>
394 394
           <Filename>../Src/main.c</Filename>
395 395
           <ExecCommand></ExecCommand>
396
-          <Expression>\\NUCLEO_F103RB\../Src/main.c\46</Expression>
396
+          <Expression>\\NUCLEO_F103RB\../Src/main.c\39</Expression>
397
+        </Bp>
398
+        <Bp>
399
+          <Number>1</Number>
400
+          <Type>0</Type>
401
+          <LineNumber>40</LineNumber>
402
+          <EnabledFlag>1</EnabledFlag>
403
+          <Address>0</Address>
404
+          <ByteObject>0</ByteObject>
405
+          <HtxType>0</HtxType>
406
+          <ManyObjects>0</ManyObjects>
407
+          <SizeOfObject>0</SizeOfObject>
408
+          <BreakByAccess>0</BreakByAccess>
409
+          <BreakIfRCount>0</BreakIfRCount>
410
+          <Filename>../Src/main.c</Filename>
411
+          <ExecCommand></ExecCommand>
412
+          <Expression></Expression>
397 413
         </Bp>
398 414
       </Breakpoint>
415
+      <WatchWindow1>
416
+        <Ww>
417
+          <count>0</count>
418
+          <WinNumber>1</WinNumber>
419
+          <ItemText>adcRaw,0x0A</ItemText>
420
+        </Ww>
421
+        <Ww>
422
+          <count>1</count>
423
+          <WinNumber>1</WinNumber>
424
+          <ItemText>adcVolt</ItemText>
425
+        </Ww>
426
+      </WatchWindow1>
399 427
       <Tracepoint>
400 428
         <THDelay>0</THDelay>
401 429
       </Tracepoint>
402 430
       <DebugFlag>
403 431
         <trace>0</trace>
404 432
         <periodic>1</periodic>
405
-        <aLwin>1</aLwin>
433
+        <aLwin>0</aLwin>
406 434
         <aCover>0</aCover>
407 435
         <aSer1>0</aSer1>
408 436
         <aSer2>0</aSer2>
@@ -438,6 +466,13 @@
438 466
       <pszMrulep></pszMrulep>
439 467
       <pSingCmdsp></pSingCmdsp>
440 468
       <pMultCmdsp></pMultCmdsp>
469
+      <LogicAnalyzers>
470
+        <Wi>
471
+          <IntNumber>0</IntNumber>
472
+          <FirstString>((PORTA &amp; 0x00000200) &gt;&gt; 9 &amp; 0x200) &gt;&gt; 9</FirstString>
473
+          <SecondString>00800000000000000000000000000000E0FFEF400100000000000000000000000000000028504F5254412026203078303030303032303029203E3E2039000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000100000001000000000000000000F03F170000000000000000000000000000000000000000010008</SecondString>
474
+        </Wi>
475
+      </LogicAnalyzers>
441 476
       <DebugDescription>
442 477
         <Enable>1</Enable>
443 478
         <EnableFlashSeq>0</EnableFlashSeq>
@@ -618,6 +653,18 @@
618 653
       <RteFlg>0</RteFlg>
619 654
       <bShared>0</bShared>
620 655
     </File>
656
+    <File>
657
+      <GroupNumber>2</GroupNumber>
658
+      <FileNumber>14</FileNumber>
659
+      <FileType>1</FileType>
660
+      <tvExp>0</tvExp>
661
+      <tvExpOptDlg>0</tvExpOptDlg>
662
+      <bDave2>0</bDave2>
663
+      <PathWithFileName>..\Services\Scheduler.c</PathWithFileName>
664
+      <FilenameWithoutPath>Scheduler.c</FilenameWithoutPath>
665
+      <RteFlg>0</RteFlg>
666
+      <bShared>0</bShared>
667
+    </File>
621 668
   </Group>
622 669
 
623 670
   <Group>
@@ -628,7 +675,7 @@
628 675
     <RteFlg>0</RteFlg>
629 676
     <File>
630 677
       <GroupNumber>3</GroupNumber>
631
-      <FileNumber>14</FileNumber>
678
+      <FileNumber>15</FileNumber>
632 679
       <FileType>1</FileType>
633 680
       <tvExp>0</tvExp>
634 681
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -640,9 +687,9 @@
640 687
     </File>
641 688
     <File>
642 689
       <GroupNumber>3</GroupNumber>
643
-      <FileNumber>15</FileNumber>
690
+      <FileNumber>16</FileNumber>
644 691
       <FileType>1</FileType>
645
-      <tvExp>0</tvExp>
692
+      <tvExp>1</tvExp>
646 693
       <tvExpOptDlg>0</tvExpOptDlg>
647 694
       <bDave2>0</bDave2>
648 695
       <PathWithFileName>..\MyDrivers\ADC.c</PathWithFileName>
@@ -652,7 +699,7 @@
652 699
     </File>
653 700
     <File>
654 701
       <GroupNumber>3</GroupNumber>
655
-      <FileNumber>16</FileNumber>
702
+      <FileNumber>17</FileNumber>
656 703
       <FileType>1</FileType>
657 704
       <tvExp>0</tvExp>
658 705
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -664,9 +711,9 @@
664 711
     </File>
665 712
     <File>
666 713
       <GroupNumber>3</GroupNumber>
667
-      <FileNumber>17</FileNumber>
714
+      <FileNumber>18</FileNumber>
668 715
       <FileType>1</FileType>
669
-      <tvExp>0</tvExp>
716
+      <tvExp>1</tvExp>
670 717
       <tvExpOptDlg>0</tvExpOptDlg>
671 718
       <bDave2>0</bDave2>
672 719
       <PathWithFileName>..\MyDrivers\USART.c</PathWithFileName>
@@ -684,7 +731,7 @@
684 731
     <RteFlg>0</RteFlg>
685 732
     <File>
686 733
       <GroupNumber>4</GroupNumber>
687
-      <FileNumber>18</FileNumber>
734
+      <FileNumber>19</FileNumber>
688 735
       <FileType>1</FileType>
689 736
       <tvExp>0</tvExp>
690 737
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -696,7 +743,7 @@
696 743
     </File>
697 744
     <File>
698 745
       <GroupNumber>4</GroupNumber>
699
-      <FileNumber>19</FileNumber>
746
+      <FileNumber>20</FileNumber>
700 747
       <FileType>1</FileType>
701 748
       <tvExp>0</tvExp>
702 749
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -708,7 +755,7 @@
708 755
     </File>
709 756
     <File>
710 757
       <GroupNumber>4</GroupNumber>
711
-      <FileNumber>20</FileNumber>
758
+      <FileNumber>21</FileNumber>
712 759
       <FileType>1</FileType>
713 760
       <tvExp>0</tvExp>
714 761
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -718,6 +765,42 @@
718 765
       <RteFlg>0</RteFlg>
719 766
       <bShared>0</bShared>
720 767
     </File>
768
+    <File>
769
+      <GroupNumber>4</GroupNumber>
770
+      <FileNumber>22</FileNumber>
771
+      <FileType>1</FileType>
772
+      <tvExp>0</tvExp>
773
+      <tvExpOptDlg>0</tvExpOptDlg>
774
+      <bDave2>0</bDave2>
775
+      <PathWithFileName>..\LLDrivers\src\stm32f1xx_ll_gpio.c</PathWithFileName>
776
+      <FilenameWithoutPath>stm32f1xx_ll_gpio.c</FilenameWithoutPath>
777
+      <RteFlg>0</RteFlg>
778
+      <bShared>0</bShared>
779
+    </File>
780
+    <File>
781
+      <GroupNumber>4</GroupNumber>
782
+      <FileNumber>23</FileNumber>
783
+      <FileType>1</FileType>
784
+      <tvExp>0</tvExp>
785
+      <tvExpOptDlg>0</tvExpOptDlg>
786
+      <bDave2>0</bDave2>
787
+      <PathWithFileName>..\LLDrivers\src\stm32f1xx_ll_usart.c</PathWithFileName>
788
+      <FilenameWithoutPath>stm32f1xx_ll_usart.c</FilenameWithoutPath>
789
+      <RteFlg>0</RteFlg>
790
+      <bShared>0</bShared>
791
+    </File>
792
+    <File>
793
+      <GroupNumber>4</GroupNumber>
794
+      <FileNumber>24</FileNumber>
795
+      <FileType>1</FileType>
796
+      <tvExp>0</tvExp>
797
+      <tvExpOptDlg>0</tvExpOptDlg>
798
+      <bDave2>0</bDave2>
799
+      <PathWithFileName>..\LLDrivers\src\stm32f1xx_ll_adc.c</PathWithFileName>
800
+      <FilenameWithoutPath>stm32f1xx_ll_adc.c</FilenameWithoutPath>
801
+      <RteFlg>0</RteFlg>
802
+      <bShared>0</bShared>
803
+    </File>
721 804
   </Group>
722 805
 
723 806
   <Group>
@@ -728,7 +811,7 @@
728 811
     <RteFlg>0</RteFlg>
729 812
     <File>
730 813
       <GroupNumber>5</GroupNumber>
731
-      <FileNumber>21</FileNumber>
814
+      <FileNumber>25</FileNumber>
732 815
       <FileType>5</FileType>
733 816
       <tvExp>0</tvExp>
734 817
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -748,7 +831,7 @@
748 831
     <RteFlg>0</RteFlg>
749 832
     <File>
750 833
       <GroupNumber>6</GroupNumber>
751
-      <FileNumber>22</FileNumber>
834
+      <FileNumber>26</FileNumber>
752 835
       <FileType>1</FileType>
753 836
       <tvExp>0</tvExp>
754 837
       <tvExpOptDlg>0</tvExpOptDlg>
@@ -768,7 +851,7 @@
768 851
     <RteFlg>0</RteFlg>
769 852
     <File>
770 853
       <GroupNumber>7</GroupNumber>
771
-      <FileNumber>23</FileNumber>
854
+      <FileNumber>27</FileNumber>
772 855
       <FileType>2</FileType>
773 856
       <tvExp>0</tvExp>
774 857
       <tvExpOptDlg>0</tvExpOptDlg>

+ 43
- 20
MDK-ARM/Project.uvprojx View File

@@ -185,7 +185,6 @@
185 185
             <uocXRam>0</uocXRam>
186 186
             <RvdsVP>0</RvdsVP>
187 187
             <RvdsMve>0</RvdsMve>
188
-            <RvdsCdeCp>0</RvdsCdeCp>
189 188
             <hadIRAM2>0</hadIRAM2>
190 189
             <hadIROM2>0</hadIROM2>
191 190
             <StupSel>8</StupSel>
@@ -352,7 +351,7 @@
352 351
             <NoWarn>0</NoWarn>
353 352
             <uSurpInc>0</uSurpInc>
354 353
             <useXO>0</useXO>
355
-            <ClangAsOpt>4</ClangAsOpt>
354
+            <uClangAs>0</uClangAs>
356 355
             <VariousControls>
357 356
               <MiscControls></MiscControls>
358 357
               <Define></Define>
@@ -453,6 +452,11 @@
453 452
               <FileType>1</FileType>
454 453
               <FilePath>..\Services\Voltage.c</FilePath>
455 454
             </File>
455
+            <File>
456
+              <FileName>Scheduler.c</FileName>
457
+              <FileType>1</FileType>
458
+              <FilePath>..\Services\Scheduler.c</FilePath>
459
+            </File>
456 460
           </Files>
457 461
         </Group>
458 462
         <Group>
@@ -498,6 +502,21 @@
498 502
               <FileType>1</FileType>
499 503
               <FilePath>..\LLDrivers\src\stm32f1xx_ll_tim.c</FilePath>
500 504
             </File>
505
+            <File>
506
+              <FileName>stm32f1xx_ll_gpio.c</FileName>
507
+              <FileType>1</FileType>
508
+              <FilePath>..\LLDrivers\src\stm32f1xx_ll_gpio.c</FilePath>
509
+            </File>
510
+            <File>
511
+              <FileName>stm32f1xx_ll_usart.c</FileName>
512
+              <FileType>1</FileType>
513
+              <FilePath>..\LLDrivers\src\stm32f1xx_ll_usart.c</FilePath>
514
+            </File>
515
+            <File>
516
+              <FileName>stm32f1xx_ll_adc.c</FileName>
517
+              <FileType>1</FileType>
518
+              <FilePath>..\LLDrivers\src\stm32f1xx_ll_adc.c</FilePath>
519
+            </File>
501 520
           </Files>
502 521
         </Group>
503 522
         <Group>
@@ -539,7 +558,7 @@
539 558
       <TargetName>Simulateur</TargetName>
540 559
       <ToolsetNumber>0x4</ToolsetNumber>
541 560
       <ToolsetName>ARM-ADS</ToolsetName>
542
-      <pCCUsed>5060750::V5.06 update 6 (build 750)::.\ARMCC</pCCUsed>
561
+      <pCCUsed>5060750::V5.06 update 6 (build 750)::ARMCC</pCCUsed>
543 562
       <uAC6>0</uAC6>
544 563
       <TargetOption>
545 564
         <TargetCommonOption>
@@ -714,7 +733,6 @@
714 733
             <uocXRam>0</uocXRam>
715 734
             <RvdsVP>0</RvdsVP>
716 735
             <RvdsMve>0</RvdsMve>
717
-            <RvdsCdeCp>0</RvdsCdeCp>
718 736
             <hadIRAM2>0</hadIRAM2>
719 737
             <hadIROM2>0</hadIROM2>
720 738
             <StupSel>8</StupSel>
@@ -881,7 +899,7 @@
881 899
             <NoWarn>0</NoWarn>
882 900
             <uSurpInc>0</uSurpInc>
883 901
             <useXO>0</useXO>
884
-            <ClangAsOpt>4</ClangAsOpt>
902
+            <uClangAs>0</uClangAs>
885 903
             <VariousControls>
886 904
               <MiscControls></MiscControls>
887 905
               <Define></Define>
@@ -982,6 +1000,11 @@
982 1000
               <FileType>1</FileType>
983 1001
               <FilePath>..\Services\Voltage.c</FilePath>
984 1002
             </File>
1003
+            <File>
1004
+              <FileName>Scheduler.c</FileName>
1005
+              <FileType>1</FileType>
1006
+              <FilePath>..\Services\Scheduler.c</FilePath>
1007
+            </File>
985 1008
           </Files>
986 1009
         </Group>
987 1010
         <Group>
@@ -1027,6 +1050,21 @@
1027 1050
               <FileType>1</FileType>
1028 1051
               <FilePath>..\LLDrivers\src\stm32f1xx_ll_tim.c</FilePath>
1029 1052
             </File>
1053
+            <File>
1054
+              <FileName>stm32f1xx_ll_gpio.c</FileName>
1055
+              <FileType>1</FileType>
1056
+              <FilePath>..\LLDrivers\src\stm32f1xx_ll_gpio.c</FilePath>
1057
+            </File>
1058
+            <File>
1059
+              <FileName>stm32f1xx_ll_usart.c</FileName>
1060
+              <FileType>1</FileType>
1061
+              <FilePath>..\LLDrivers\src\stm32f1xx_ll_usart.c</FilePath>
1062
+            </File>
1063
+            <File>
1064
+              <FileName>stm32f1xx_ll_adc.c</FileName>
1065
+              <FileType>1</FileType>
1066
+              <FilePath>..\LLDrivers\src\stm32f1xx_ll_adc.c</FilePath>
1067
+            </File>
1030 1068
           </Files>
1031 1069
         </Group>
1032 1070
         <Group>
@@ -1080,19 +1118,4 @@
1080 1118
     <files/>
1081 1119
   </RTE>
1082 1120
 
1083
-  <LayerInfo>
1084
-    <Layers>
1085
-      <Layer>
1086
-        <LayName>&lt;Project Info&gt;</LayName>
1087
-        <LayDesc></LayDesc>
1088
-        <LayUrl></LayUrl>
1089
-        <LayKeys></LayKeys>
1090
-        <LayCat></LayCat>
1091
-        <LayLic></LayLic>
1092
-        <LayTarg>0</LayTarg>
1093
-        <LayPrjMark>1</LayPrjMark>
1094
-      </Layer>
1095
-    </Layers>
1096
-  </LayerInfo>
1097
-
1098 1121
 </Project>

+ 51
- 0
MyDrivers/ADC.c View File

@@ -1 +1,52 @@
1 1
 #include "ADC.h"
2
+#include "stm32f1xx_ll_bus.h" 	// Pour horloge
3
+
4
+void ADC_conf(ADC_TypeDef *adc, uint32_t voie) 
5
+{
6
+	if (adc == ADC1) {
7
+		LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_ADC1);
8
+	} else if (adc == ADC2) {
9
+		LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_ADC2);
10
+	}
11
+	
12
+	// Division de la frequence
13
+	RCC->CFGR |= RCC_CFGR_ADCPRE_DIV6;
14
+	
15
+	// Fixe le nombre de conversion à 1
16
+	adc->SQR1&= ADC_SQR1_L; 
17
+	
18
+	// Indique la voie a convertir
19
+	adc->SQR3|= voie; 
20
+	
21
+	 // Calibration
22
+	adc->CR2 |= ADC_CR2_CAL_Msk;
23
+	while ((adc->CR2 & ADC_CR2_CAL_Msk));	
24
+}
25
+
26
+
27
+void ADC_start(ADC_TypeDef *adc)
28
+{
29
+	adc->CR2 |= ADC_CR2_ADON;
30
+}
31
+
32
+
33
+uint16_t ADC_readRaw(ADC_TypeDef *adc)
34
+{
35
+		// Lancement de la conversion
36
+	  adc->CR2 |= ADC_CR2_ADON; 
37
+    while(!(ADC1->SR & ADC_SR_EOC)) {}
38
+			
39
+    return ADC1->DR & ADC_DR_DATA_Msk;
40
+}
41
+
42
+
43
+double ADC_convertToVolt(uint16_t value)
44
+{
45
+	return ((double) value) / 4095.0 * 3.3;
46
+}
47
+
48
+
49
+double ADC_readVolt(ADC_TypeDef *adc)
50
+{
51
+	return ADC_convertToVolt(ADC_readRaw(adc));
52
+}

+ 11
- 0
MyDrivers/ADC.h View File

@@ -1,4 +1,15 @@
1 1
 #ifndef ADC_H
2 2
 #define ADC_H
3 3
 
4
+#include "stm32f1xx_ll_adc.h"
5
+
6
+void ADC_conf(ADC_TypeDef *adc, uint32_t voie);
7
+void ADC_start(ADC_TypeDef *adc);
8
+
9
+uint16_t ADC_readRaw(ADC_TypeDef *adc);
10
+double ADC_readVolt(ADC_TypeDef *adc);
11
+
12
+double ADC_convertToVolt(uint16_t value);
13
+
14
+
4 15
 #endif

+ 57
- 0
MyDrivers/USART.c View File

@@ -1 +1,58 @@
1 1
 #include "USART.h" 
2
+#include "GPIO.h"
3
+#include "stm32f1xx_ll_bus.h" 	// Pour horloge
4
+
5
+
6
+void Usart_conf(USART_TypeDef *USARTx) {
7
+	int txPin;
8
+	GPIO_TypeDef *usartGpio;
9
+	
10
+	if (USARTx == USART1) {
11
+		LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_USART1);
12
+		LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
13
+		txPin = LL_GPIO_PIN_9;
14
+		usartGpio = GPIOA;
15
+	} else if (USARTx == USART2) {
16
+		LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART2);
17
+		LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOA);
18
+		txPin = LL_GPIO_PIN_2;
19
+		usartGpio = GPIOA;
20
+	} else if (USARTx == USART3) {
21
+		LL_APB1_GRP1_EnableClock(LL_APB1_GRP1_PERIPH_USART3);
22
+		LL_APB2_GRP1_EnableClock(LL_APB2_GRP1_PERIPH_GPIOB);
23
+		txPin = LL_GPIO_PIN_10;	
24
+		usartGpio = GPIOB;
25
+	}	
26
+	
27
+	LL_USART_InitTypeDef usartInit;
28
+	LL_USART_StructInit(&usartInit);
29
+	usartInit.DataWidth = LL_USART_DATAWIDTH_8B;
30
+	usartInit.BaudRate = 9600;
31
+	usartInit.TransferDirection = LL_USART_DIRECTION_TX_RX;
32
+	LL_USART_Init(USARTx, &usartInit);
33
+	
34
+	GPIO_conf(usartGpio, txPin, LL_GPIO_MODE_ALTERNATE, LL_GPIO_OUTPUT_PUSHPULL, LL_GPIO_PULL_UP);
35
+}
36
+
37
+
38
+
39
+void Usart_enable(USART_TypeDef *USARTx) {
40
+		LL_USART_Enable(USARTx);
41
+}
42
+
43
+
44
+void sendChar(USART_TypeDef *USARTx, char c) {
45
+	LL_USART_TransmitData8(USARTx, c);
46
+	while (!LL_USART_IsActiveFlag_TXE(USARTx)) {}
47
+}
48
+
49
+
50
+void Usart_send(USART_TypeDef *USARTx, char *msg, int length) {
51
+	for (int i = 0; i < length; i++) {
52
+		sendChar(USARTx, msg[i]);
53
+	}
54
+}
55
+
56
+
57
+
58
+

+ 5
- 0
MyDrivers/USART.h View File

@@ -1,5 +1,10 @@
1 1
 #ifndef USART_H
2 2
 #define USART_H
3 3
 
4
+#include "stm32f1xx_ll_usart.h"
5
+
6
+void Usart_conf(USART_TypeDef *USARTx);
7
+void Usart_enable(USART_TypeDef *USARTx);
8
+void Usart_send(USART_TypeDef *USARTx, char *msg, int length);
4 9
 
5 10
 #endif

+ 9
- 1
Src/main.c View File

@@ -22,28 +22,36 @@
22 22
 
23 23
 #include "Sail.h"
24 24
 #include "Scheduler.h"
25
+#include "ADC.h"
26
+#include "GPIO.h"
25 27
 
26 28
 void  SystemClock_Config(void);
27 29
 
28 30
 /* Private functions ---------------------------------------------------------*/
29 31
 
30 32
 int counter = 1;
33
+int adcRaw = 0;
34
+double adcVolt = 0.0;
31 35
 
32 36
 void backgroundTask()
33 37
 {
34 38
 	counter++;
35 39
 	Sail_background();
40
+	adcRaw = ADC_readRaw(ADC1);
41
+	adcVolt = ADC_convertToVolt(adcRaw);
36 42
 }
37 43
 
38 44
 
39 45
 void configurePeripherals()
40 46
 {
41 47
 	Sail_conf();
48
+	ADC_conf(ADC1, 12);
42 49
 }
43 50
 
44 51
 void startPeripherals()
45 52
 {
46 53
 	Sail_start();
54
+	ADC_start(ADC1);
47 55
 }
48 56
 
49 57
 /**
@@ -67,7 +75,7 @@ int main(void)
67 75
 	
68 76
 	Scheduler_conf(backgroundTask);
69 77
 	Scheduler_start();
70
-	
78
+
71 79
   while (1)
72 80
   {
73 81
   }

Loading…
Cancel
Save