1 | Hier noch dazu die main.c
|
2 |
|
3 | Danke schon mal!
|
4 |
|
5 | /*******************************************************************************
|
6 | PIN OVERVIEW:
|
7 |
|
8 | GPIO A USED BY
|
9 | 0 /
|
10 | 1 /
|
11 | 2 /
|
12 | 3 /
|
13 | 4
|
14 | 5 SPI sck
|
15 | 6 SPI miso
|
16 | 7 SPI mosi
|
17 | 8 CS
|
18 | 9 USART tx
|
19 | 10 USART rx
|
20 | 11
|
21 | 12
|
22 | 13
|
23 | 14
|
24 | 15
|
25 | ** CONFIGURATION PARAMETERS **
|
26 | *******************************************************************************/
|
27 |
|
28 | //#define DRDY_IC1 10
|
29 | //#define DRDY_IC2 11
|
30 | #define REFERENCE_RESISTOR 400
|
31 | #define PT_RESISTANCE 100
|
32 | #define IC1 11
|
33 | #define IC2 12
|
34 |
|
35 | /**
|
36 | * Configuration of the MAX31865 from MSB to LSB:
|
37 | * BIT FUNCTION ASSIGNMENT
|
38 | * 7 VBIAS 0=OFF 1=ON
|
39 | * 6 Conversion Mode 0=Normally OFF 1=AUTO
|
40 | * 5 1-Shot 0= - 1=1-Shot
|
41 | * 4 3-Wire 0=2- or 4-Wire 1=3-wire
|
42 | * 3,2 Faultdetection set both to 0
|
43 | * 1 Fault Status Clear set to 1
|
44 | * 0 50/60Hz filter 0=60Hz 1=50Hz
|
45 | */
|
46 | #define MAX31865_CONFIG 0b10000011
|
47 |
|
48 | //*******************************************************************************
|
49 | #include "stm32f10x_conf.h"
|
50 | #include "spi.h"
|
51 | #include "stm32_ub_systick.h"
|
52 | #include "uart.h"
|
53 | #include "stdio.h"
|
54 |
|
55 | #define CONFIGURATION_REGISTER 0x00
|
56 | #define RTD_MSB_REGISTER 0x01
|
57 | #define RTD_LSB_REGISTER 0x02
|
58 | #define HIGH_FAULT_THRESHOLD_MSB_REGISTER 0x03
|
59 | #define HIGH_FAULT_THRESHOLD_LSB_REGISTER 0x04
|
60 | #define LOW_FAULT_THRESHOLD_MSB_REGISTER 0x05
|
61 | #define LOW_FAULT_THRESHOLD_LSB_REGISTER 0x06
|
62 | #define FAULT_STATUS_REGISTER 0x07
|
63 |
|
64 | #define READ_MODE 0x00
|
65 | #define WRITE_MODE 0x80
|
66 | #define START_1_SHOT 0x20
|
67 | //#define MAX31865_CONFIG 0b10010011
|
68 |
|
69 | int main(void)
|
70 | {
|
71 |
|
72 | GPIO_InitTypeDef GPIO_InitStructure;
|
73 | NVIC_InitTypeDef NVIC_InitStructure;
|
74 | SPI_InitTypeDef SPI_InitStructure;
|
75 |
|
76 | SystemInit();
|
77 | UB_Systick_Init();
|
78 | usart_init();
|
79 |
|
80 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO | RCC_APB2Periph_SPI1, ENABLE);
|
81 | /* Initialize LED which connected to PC6,9, Enable the Clock*/
|
82 | RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);
|
83 | /* Configure the GPIO_LED pin */
|
84 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8|GPIO_Pin_9|GPIO_Pin_6;
|
85 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
86 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
87 | GPIO_Init(GPIOC, &GPIO_InitStructure);
|
88 |
|
89 | GPIO_WriteBit(GPIOC,GPIO_Pin_9,Bit_SET);
|
90 | GPIO_WriteBit(GPIOC,GPIO_Pin_6,Bit_SET);
|
91 | UB_Systick_Pause_ms(3);
|
92 |
|
93 | GPIO_WriteBit(GPIOC,GPIO_Pin_8,Bit_SET);
|
94 |
|
95 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5 | GPIO_Pin_7;
|
96 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP;
|
97 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
98 | GPIO_Init(GPIOA, &GPIO_InitStructure);
|
99 |
|
100 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_6;
|
101 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;
|
102 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
103 | GPIO_Init(GPIOA, &GPIO_InitStructure);
|
104 |
|
105 | GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8;
|
106 | GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
|
107 | GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
|
108 | GPIO_Init(GPIOA, &GPIO_InitStructure);
|
109 |
|
110 | GPIO_WriteBit(GPIOA, GPIO_Pin_8, SET);
|
111 |
|
112 | NVIC_InitStructure.NVIC_IRQChannel = SPI1_IRQn;
|
113 | NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;
|
114 | NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;
|
115 | NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;
|
116 | NVIC_Init(&NVIC_InitStructure);
|
117 |
|
118 | SPI_InitStructure.SPI_BaudRatePrescaler = SPI_BaudRatePrescaler_32;
|
119 | SPI_InitStructure.SPI_CPHA = SPI_CPHA_2Edge;
|
120 | SPI_InitStructure.SPI_CPOL = SPI_CPOL_High;
|
121 | SPI_InitStructure.SPI_CRCPolynomial = 7;
|
122 | SPI_InitStructure.SPI_DataSize = SPI_DataSize_8b;
|
123 | SPI_InitStructure.SPI_Direction = SPI_Direction_2Lines_FullDuplex;
|
124 | SPI_InitStructure.SPI_FirstBit = SPI_FirstBit_MSB;
|
125 | SPI_InitStructure.SPI_Mode = SPI_Mode_Master;
|
126 | SPI_InitStructure.SPI_NSS = SPI_NSS_Soft;
|
127 | SPI_Init(SPI1, &SPI_InitStructure);
|
128 |
|
129 | SPI_I2S_ITConfig(SPI1, SPI_I2S_IT_RXNE, ENABLE);
|
130 |
|
131 | SPI_Cmd(SPI1, ENABLE);
|
132 |
|
133 | spi_create(SPI1, GPIOA, GPIO_Pin_8);
|
134 |
|
135 | spi_writeByte(WRITE_MODE);
|
136 | spi_writeByte(MAX31865_CONFIG);
|
137 | spi_writeByte(START_1_SHOT);
|
138 | UB_Systick_Pause_ms(200);
|
139 |
|
140 | //spi_writeByte(READ_MODE);
|
141 | spi_writeByte(0x00);
|
142 | spi_writeByte(0x01);
|
143 |
|
144 | //spi_writeTwoBytes(0x12,0x34);
|
145 | //spi_writeTwoBytes(0x00,0x00);
|
146 | //spi_writeTwoBytes(READ_MODE,0x00);
|
147 | //uint8_t value=spi_receivebyte();
|
148 |
|
149 | //char buffer[22];
|
150 |
|
151 |
|
152 | //sprintf(buffer,"%s%d%s","received SPI value ",value,"%n");
|
153 |
|
154 | //UARTSend(buffer,sizeof(buffer));
|
155 |
|
156 | return 0;
|
157 | }
|