Разработка универсальной микропроцессорной системы сбора сигналов с заданными параметрами
Дипломная работа - Компьютеры, программирование
Другие дипломы по предмету Компьютеры, программирование
з одних металлургических емкостей в другие. Отчет НПО "ТехноАп" по материалам зарубежной прессы и результатам испытания на ММК.
.Разработка и промышленная эксплуатация на ОАО "ММК" системы раннего обнаружения шлака "ДШ-К" фирмы ЗАО "ТЕХНОАП". Тахаутдинов Р.С., Носов А.Д., Бодяев Ю.А., Бузинник В.М.. (ОАО "Магнитогорский металлургический комбинат"), Сорокин А.Н., Формакидов А.М.(ЗАО "Техноап").
.Cortex-M3 Technical reference manual, ARM Ltd.
.ARMv7-M architectural reference manual, ARM Ltd.
.ARM Architectural reference manual Thumb2 supplement, ARM Ltd.
.STM32F207xx User Manual, ST Microelectronics.
.STM32F20xxx FLASH Programming manual, ST Microelectronics.
ПРИЛОЖЕНИЕ А
(обязательное)
#include "stm32f2x7_eth.h"
#include "stm32f2xx_it.h"
#include "netconf.h"
#include "main.h"
AdcInit(void)
{
RCC->APB2ENR |= RCC_APB2ENR_IOPAEN;
GPIOA->CRL &= ~GPIO_CRL_MODE0;
GPIOA->CRL &= ~GPIO_CRL_MODE1;
GPIOA->CRL &= ~GPIO_CRL_MODE2;
GPIOA->CRL &= ~GPIO_CRL_MODE3;
GPIOA->CRL &= ~GPIO_CRL_MODE4;
GPIOA->CRL &= ~GPIO_CRL_MODE5;
GPIOA->CRL &= ~GPIO_CRL_MODE6;
GPIOA->CRL &= ~GPIO_CRL_MODE7;
GPIOA->CRL &= ~GPIO_CRL_CNF0;
GPIOA->CRL &= ~GPIO_CRL_CNF1;
GPIOA->CRL &= ~GPIO_CRL_CNF2;
GPIOA->CRL &= ~GPIO_CRL_CNF3;
GPIOA->CRL &= ~GPIO_CRL_CNF4;
GPIOA->CRL &= ~GPIO_CRL_CNF5;
GPIOA->CRL &= ~GPIO_CRL_CNF6;
GPIOA->CRL &= ~GPIO_CRL_CNF7;
RCC->APB2ENR |= RCC_APB2ENR_ADC1EN;
ADC1->CR2 |= ADC_CR2_DMA;
ADC1->CR1 |= ADC_CR1_EOCIE;
ADC1->CR2 |= ADC_CR2_CAL;
while (!(ADC1->CR2 & ADC_CR2_CAL)){};
ADC1->CR2 |= ADC_CR2_EXTSEL;
ADC1->CR2 |= ADC_CR2_EXTTRIG;
ADC1->SMPR1 |= ADC_SMPR1_SMP0;
ADC1->SMPR1 |= ADC_SMPR1_SMP1;
ADC1->SMPR1 |= ADC_SMPR1_SMP2;
ADC1->SMPR1 |= ADC_SMPR1_SMP3;
ADC1->SMPR1 |= ADC_SMPR1_SMP4;
ADC1->SMPR1 |= ADC_SMPR1_SMP5;
ADC1->SMPR1 |= ADC_SMPR1_SMP6;
ADC1->SMPR1 |= ADC_SMPR1_SMP7;
ADC1->SQR3 |= ADC_SQR3_SQ2_0;
ADC1->SQR3 |= ADC_SQR3_SQ3_1;
ADC1->SQR3 |= ADC_SQR3_SQ4_0;
ADC1->SQR3 |= ADC_SQR3_SQ4_1;
ADC1->SQR3 |= ADC_SQR3_SQ5_2;
ADC1->SQR3 |= ADC_SQR3_SQ6_0;
ADC1->SQR3 |= ADC_SQR3_SQ6_2;
ADC1->SQR3 |= ADC_SQR3_SQ7_1;
ADC1->SQR3 |= ADC_SQR3_SQ7_2;
ADC1->SQR3 |= ADC_SQR3_SQ8_0;
ADC1->SQR3 |= ADC_SQR3_SQ8_1;
ADC1->SQR3 |= ADC_SQR3_SQ8_2;
ADC1->SQR1 |= ADC_SQR1_L_3;
ADC1->CR2 |= ADC_CR2_ADON;
}
TIM_init(void)
{
RCC->APB1ENR |= RCC_APB1ENR_TIM1EN;
TIM1->ARR = 1;
TIM1->PSC = 12000-1;
TIM1->CCMR1 |= TIM_CCMR1_OC1M_1 | TIM_CCMR1_OC1M_2;
TIM1->CR2 |= TIM_CR2_OIS1;
TIM1->CR1 |= TIM_CR1_CEN;
TIM1->DIER |= TIM_DIER_UIE;
}
TIM2_IRQHandler (void)
{
TIM1->SR &= ~TIM_SR_UIF;
ADC1->CR2 |= ADC_CR2_SWSTART;
}
DMA_init (void)
{
RCC->AHBENR |= RCC_AHBENR_DMA1EN;
DMA1_Channel1->CPAR = (uint32_t) &ADC1->DR;
DMA1_Channel1->CMAR = (uint32_t) &BuffRxd[0];
DMA1_Channel1->CNDTR = 1;
DMA1_Channel1->CCR &= ~DMA_CCR4_DIR;
DMA1_Channel1->CCR |= DMA_CCR4_PSIZE_0;
DMA1_Channel1->CCR = ~DMA_CCR4_PINC;
DMA1_Channel4->CCR |= DMA_CCR4_MSIZE_0;
DMA1_Channel4->CCR |= DMA_CCR4_MINC;
DMA1_Channel1->CCR |= DMA_CCR1_CIRC;
DMA1_Channel1->CCR |= DMA_CCR1_EN;
}
ADC1_2_IRQHandler (void)
{
schetchik = schetchik + 1
if (schetchik = 80)
{
schetchik = 0
struct udp_pcb *upcb;
struct pbuf *p;
struct ip_addr DestIPaddr;
unsigned char tdata[1280] = BuffTxd[1280];
char *data = tdata;
upcb = udp_new();
IP4_ADDR( &DestIPaddr, DEST_IP_ADDR0, DEST_IP_ADDR1, DEST_IP_ADDR2, DEST_IP_ADDR3 );
udp_connect(upcb, &DestIPaddr, UDP_SERVER_PORT);
p = pbuf_alloc(PBUF_TRANSPORT,strlen((char*)data), PBUF_POOL);
pbuf_take(p, (char*)data, strlen((char*)data));
udp_send(upcb, p);
udp_disconnect(upcb);
pbuf_free(p);
}
}
main(void)
{
char BuffTxd[1280]_init();_init();_init();_BSP_Config();_Init();
__enable_irq();_EnableIRQ(TIM1_IRQn);_SetPriority(TIM1_IRQn, 1);_EnableIRQ(ADC1_IRQn)
(1)
{
if (ETH_CheckFrameReceived())
{
LwIP_Pkt_Handle();
}
LwIP_Periodic_Handle(LocalTime);
}
}