<?xml version="1.0" encoding="UTF-8"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="pl-pl">
<link rel="self" type="application/atom+xml" href="https://forum.atnel.pl/feed.php?f=46&amp;t=8098&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2014-08-12T23:05:09+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=8098&amp;mode</id>
<entry>
<author><name><![CDATA[tompul]]></name></author>
<updated>2014-08-12T23:05:09+01:00</updated>
<published>2014-08-12T23:05:09+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8098&amp;p=91308#p91308</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8098&amp;p=91308#p91308"/>
<title type="html"><![CDATA[Re: STM32F4 DISCOVERY - Brak komunikacji z PC (RS232)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8098&amp;p=91308#p91308"><![CDATA[
Cześć, zrobiłem na SPL, ale może zapoznanie sie z działaniami i ich kolejnością pomoże<br /><br />[syntax]void USART2_Init(void)<br />{<br />GPIO_InitTypeDef GPIO_InitStructure;<br />USART_InitTypeDef USART_InitStructure;<br />NVIC_InitTypeDef NVIC_InitStructure;<br /><br /><br />RCC_AHB1PeriphClockCmd (RCC_AHB1Periph_GPIOA, ENABLE);<br />RCC_APB1PeriphClockCmd (RCC_APB1Periph_USART2, ENABLE);<br />// PA2 = Tx<br />// PA3 = Rx<br />GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2 | GPIO_Pin_3;<br />GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF; // alternate function!<br />GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br />GPIO_InitStructure.GPIO_OType = GPIO_OType_PP;// this defines the output type as push pull mode (as opposed to open drain)<br />GPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_UP;<br />GPIO_Init(GPIOA, &amp;GPIO_InitStructure);<br /><br />/* USART jest funkcją alternatywną więc musimy ją ustawić w AFIO */<br />GPIO_PinAFConfig(GPIOA, GPIO_PinSource2, GPIO_AF_USART2);<br />GPIO_PinAFConfig(GPIOA, GPIO_PinSource3, GPIO_AF_USART2);<br /><br /><br />USART_InitStructure.USART_BaudRate = 38400; <br />USART_InitStructure.USART_WordLength = USART_WordLength_8b;<br />USART_InitStructure.USART_StopBits = USART_StopBits_1;<br />USART_InitStructure.USART_Parity = USART_Parity_No;<br />USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None;<br />USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx;<br />USART_Init(USART2, &amp;USART_InitStructure);<br /><br /><br /><br />USART_ITConfig(USART2, USART_IT_RXNE, ENABLE);<br /><br /><br />NVIC_InitStructure.NVIC_IRQChannel = USART2_IRQn; // we want to configure the USART1 interrupts<br />NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;// this sets the priority group of the USART1 interrupts<br />NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0; // this sets the subpriority inside the group<br />NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE; // the USART1 interrupts are globally enabled<br />NVIC_Init(&amp;NVIC_InitStructure); // the properties are passed to the NVIC_Init function which takes care of the low level stuff<br /><br /><br /><br />USART_Cmd(USART2, ENABLE);<br /><br />}[/syntax]<br />Bez konfiguracji przerwania też działało<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=262">tompul</a> — 12 sie 2014, o 23:05</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[ps19]]></name></author>
<updated>2014-08-11T22:30:26+01:00</updated>
<published>2014-08-11T22:30:26+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=8098&amp;p=91150#p91150</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=8098&amp;p=91150#p91150"/>
<title type="html"><![CDATA[STM32F4 DISCOVERY - Brak komunikacji z PC (RS232)]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=8098&amp;p=91150#p91150"><![CDATA[
Witam<br /><br />Mam problem otóż od kilku godzin borykam się z problemem braku komunikacji pomiędzy procesorem a PC, w terminalu (Putty) pusto.<br />Procesor to STM32F407VGT6 (STM32F4 Discovery), używam przejściówki na FT232RL (Pod AVR działa)<br /><br />[syntax=c]void RCC_Conf(void)<br />{<br /> RCC-&gt;CR |= RCC_CR_HSEON;<br /> while(((RCC-&gt;CR) &amp; RCC_CR_HSERDY) == 0){}<br />    PWR-&gt;CR |= PWR_CR_VOS;<br />     RCC-&gt;CR |= RCC_CR_CSSON;<br />     RCC-&gt;CFGR |= RCC_CFGR_HPRE_DIV1 | RCC_CFGR_PPRE2_DIV2 | RCC_CFGR_PPRE1_DIV4;<br />                 //HCLK = SYSCLK/1;    PCLK2 = HCLK/2;       PCLK1 = HCLK/4<br />     RCC-&gt;PLLCFGR = PLL_M | (PLL_N &lt;&lt; 6) | (((PLL_P &gt;&gt; 1) -1) &lt;&lt; 16) |<br />                    (RCC_PLLCFGR_PLLSRC_HSE) | (PLL_Q &lt;&lt; 24);<br />     RCC-&gt;CR |= RCC_CR_PLLON;<br />     while((RCC-&gt;CR &amp; RCC_CR_PLLRDY) == 0){}<br />     FLASH-&gt;ACR = FLASH_ACR_ICEN |FLASH_ACR_DCEN |FLASH_ACR_LATENCY_5WS; //konfiguracja Flash`a<br />    RCC-&gt;CFGR |= RCC_CFGR_SW_PLL; //PLL jako zegar<br />while( ((RCC-&gt;CFGR) &amp; RCC_CFGR_SWS) != RCC_CFGR_SWS_PLL){}<br /><br />  /*Konfiguracja sygnałów zegarowych potrzebnych w programie peryferiów*/<br /><br />RCC-&gt;APB1ENR |= RCC_APB1ENR_PWREN; //Zarzędzanie enerigią<br />RCC-&gt;AHB1ENR |= RCC_APB2ENR_SYSCFGEN; //Kontroler konfiguracji zegara<br />}<br /><br />void USART_Conf(void)<br />{<br />RCC-&gt;AHB1ENR |= RCC_AHB1ENR_GPIOAEN;<br />RCC-&gt;APB1ENR |= RCC_APB1ENR_USART2EN;<br />//TX - PA2//RX - PA3<br />GPIOA-&gt;MODER |= (2&lt;&lt;4); //wyjscie<br />GPIOA-&gt;AFR&#91;0&#93; = (0b0010&lt;&lt;8) /*| (0b0011&lt;&lt;12)*/;//Porty 0..7 (1&lt;&lt;n) n = pin*4<br />GPIOA-&gt;MODER &amp;=~(1&lt;&lt;6);<br />//GPIOA-&gt;MODER  |= GPIO_MODER_MODER2_1 | GPIO_MODER_MODER3_1;<br /><br />USART2-&gt;BRR = 42000000/9600;<br />USART2-&gt;CR1 |= USART_CR1_UE;<br />USART2-&gt;CR1 |= USART_CR1_TE | USART_CR1_RE;<br />}<br /><br />void LED_Conf(void)<br />{<br />RCC-&gt;AHB1ENR |= RCC_AHB1ENR_GPIODEN;<br />    //(1&lt;&lt;pin*2)<br />GPIOD-&gt;MODER |= (1&lt;&lt;24) | (1&lt;&lt;26) | (1&lt;&lt;28) | (1&lt;&lt;30);//Porty jako wyjcie<br />GPIOD-&gt;OTYPER &amp;= ~(1&lt;&lt;24) | (1&lt;&lt;26) | (1&lt;&lt;28) | (1&lt;&lt;30);//Push-pull<br />GPIOD-&gt;OSPEEDR |= (3&lt;&lt;24) | (3&lt;&lt;26) | (3&lt;&lt;28) | (3&lt;&lt;30);//Max prędkosc portu<br />}<br /><br />int main(void)<br />{<br />RCC_Conf();<br />LED_Conf();<br />NVIC_Conf();<br />USART_Conf();<br /><br />_delay_ms(100);<br />USART2-&gt;DR = 'W';<br />_delay_ms(100);<br />USART2-&gt;DR = 'I';<br />_delay_ms(100);<br />USART2-&gt;DR = 'T';<br />_delay_ms(100);<br />USART2-&gt;DR = 'A';<br />_delay_ms(100);<br />USART2-&gt;DR = 'J';<br />_delay_ms(100);<br /><br />  while (1)<br />    {<br /> USART2-&gt;DR = 'D';<br />while(!(USART2-&gt;SR &amp; USART_SR_TXE));<br /> GPIOD-&gt;ODR ^= (1 &lt;&lt; 14); //Toggle LED<br /> _delay_ms(500);<br />    }<br />}[/syntax]<br /><br />Dioda miga więc _delay_ms działa.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=230">ps19</a> — 11 sie 2014, o 22:30</p><hr />
]]></content>
</entry>
</feed>