<?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=10601&amp;mode" />

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2015-02-13T10:12:08+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=10601&amp;mode</id>
<entry>
<author><name><![CDATA[Radzio M.]]></name></author>
<updated>2015-02-13T10:12:08+01:00</updated>
<published>2015-02-13T10:12:08+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118716#p118716</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118716#p118716"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118716#p118716"><![CDATA[
Dla potomnych, coś takiego działa : <br />[syntax=c]void GPIO_Conf(void){<br />// włącz taktkownie GPIOC<br />RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);<br /><br />GPIO_InitTypeDef GPIO_InitStructure;<br /><br />GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;<br />GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;<br />GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br />GPIO_Init(GPIOC, &amp;GPIO_InitStructure);<br /><br /><br /><br />RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA |<br />RCC_APB2Periph_USART1 | RCC_APB2Periph_AFIO, ENABLE);<br /><br />// PA9 = Tx<br />GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9;<br />GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; // alternate function!<br />GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br />GPIO_Init(GPIOA, &amp;GPIO_InitStructure);<br /><br />// PA10 = Rx<br />GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10;<br />GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING;<br />GPIO_Init(GPIOA, &amp;GPIO_InitStructure);<br />}<br /><br />void NVIC_Conf(void){<br />#ifdef  VECT_TAB_RAM<br />NVIC_SetVectorTable(NVIC_VectTab_RAM, 0x0);<br />#else  /* VECT_TAB_FLASH  */<br />NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0);<br />#endif<br /><br />NVIC_InitTypeDef NVIC_InitStructure;<br /><br />// Konfiguracja przerwania<br />NVIC_PriorityGroupConfig(NVIC_PriorityGroup_1);<br /><br />NVIC_InitStructure.NVIC_IRQChannel = USART1_IRQn;<br />NVIC_InitStructure.NVIC_IRQChannelPreemptionPriority = 0;<br />NVIC_InitStructure.NVIC_IRQChannelSubPriority = 0;<br />NVIC_InitStructure.NVIC_IRQChannelCmd = ENABLE;<br />NVIC_Init(&amp;NVIC_InitStructure);<br />}<br /><br />void USART1_Conf(void){<br />USART_InitTypeDef USART_InitStructure;<br /><br />USART_InitStructure.USART_BaudRate = 38400; // ustawienie pr?dkoci przesy?u danych<br /><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(USART1, &amp;USART_InitStructure);<br /><br />USART_ITConfig(USART1, USART_IT_RXNE, ENABLE);<br />USART_Cmd(USART1, ENABLE);<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=396">Radzio M.</a> — 13 lut 2015, o 10:12</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Radzio M.]]></name></author>
<updated>2015-02-12T13:56:51+01:00</updated>
<published>2015-02-12T13:56:51+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118573#p118573</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118573#p118573"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118573#p118573"><![CDATA[
Tak to ta płytka, jest na niej kwarc 8MHz podłączony do uC.<br />Dziekuję Panowie za wypowiedzi. Chcę to zrobić od 0. Tzn. zaczynamy od ustawień zegara. W ręku mam książkę Pana Paprockiego i robię konfigurację zegara według jego przykładu.<br />Mam kwarc 8MHz, maksymalna cz. taktowania rdzenia w stm32F100RB to 24MHz, więc na taką ją muszę ustawić. No to ciach klepie to w COIDE :<br />[syntax=c]#include &quot;stm32f10x_rcc.h&quot;<br />#include &quot;stm32f10x_flash.h&quot;<br />#include &quot;stm32f10x_gpio.h&quot;<br /><br />void RCC_Conf(void){<br />ErrorStatus HSEstartUpStatus;<br /><br />// reset ustawień RCC<br />RCC_DeInit();<br /><br />//Wlacz HSE<br />RCC_HSEConfig(RCC_HSE_ON);<br /><br />//Poczekaj na gotowosc HSE<br />HSEstartUpStatus = RCC_WaitForHSEStartUp();<br /><br />if(HSEstartUpStatus == SUCCESS){<br />FLASH_PrefetchBufferCmd(FLASH_PrefetchBuffer_Enable);<br /><br /><br />//zwłoka dla pamieci FLASH<br />FLASH_SetLatency(FLASH_Latency_2);<br /><br />//HCLK = SYSCLK<br />RCC_HCLKConfig(RCC_SYSCLK_Div1);<br /><br />//PCLK1, PCLK2 = HCLK<br />RCC_PCLK1Config(RCC_HCLK_Div1);<br />RCC_PCLK2Config(RCC_HCLK_Div1);<br /><br />//PLLCLK = 8 * 3 = 24MHz ( max !!! )<br />RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_3);<br /><br />//Wlacz PLL<br />RCC_PLLCmd(ENABLE);<br /><br />//Czekaj na poprawne uruchomienie PLL<br />while(RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET );<br /><br />//PLL jako źródło sygnału zegarowego<br />RCC_SYSCLKConfig(RCC_SYSCLKSource_PLLCLK);<br /><br />//Czekaj aż PLL będzie sygnałem zegarowym<br />while(RCC_GetSYSCLKSource() != 0x08 );<br />}<br /><br />// włącz taktkownie GPIOC<br />RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOC, ENABLE);<br /><br />}<br /><br /><br /><br /><br /><br /><br />int main(void)<br />{<br /><br />    while(1)<br />    {<br />    }<br />}[/syntax]<br /><br />I tu mi konsola zgłasza, że nie zadeklarowano :<br /><div class="codetitle"><b>Code:</b></div><div class="codecontent">GCC HOME: C:\Program Files\GNU Tools ARM Embedded\4.9 2014q4\bin<br />compile:<br />    &#91;mkdir&#93; Created dir: C:\CooCox\CoIDE\workspace\first\first\Debug\bin<br />    &#91;mkdir&#93; Created dir: C:\CooCox\CoIDE\workspace\first\first\Debug\obj<br />       &#91;cc&#93; 8 total files to be compiled.<br />       &#91;cc&#93; arm-none-eabi-gcc -mcpu=cortex-m3 -mthumb -Wall -ffunction-sections -g -O0 -c -DSTM32F100RB -DSTM32F10X_MD_VL -DUSE_STDPERIPH_DRIVER -D__ASSEMBLY__ -IC:\CooCox\CoIDE\workspace\first\cmsis_boot -IC:\CooCox\CoIDE\workspace\first\cmsis -IC:\CooCox\CoIDE\workspace -IC:\CooCox\CoIDE\workspace\first -IC:\CooCox\CoIDE\workspace\first\stm_lib -IC:\CooCox\CoIDE\workspace\first\stm_lib\inc C:\CooCox\CoIDE\workspace\first\cmsis_boot\startup\startup_stm32f10x_md_vl.c C:\CooCox\CoIDE\workspace\first\cmsis\core_cm3.c C:\CooCox\CoIDE\workspace\first\cmsis_boot\system_stm32f10x.c C:\CooCox\CoIDE\workspace\first\stm_lib\src\stm32f10x_gpio.c C:\CooCox\CoIDE\workspace\first\main.c C:\CooCox\CoIDE\workspace\first\stm_lib\src\stm32f10x_rcc.c C:\CooCox\CoIDE\workspace\first\stm_lib\src\stm32f10x_usart.c C:\CooCox\CoIDE\workspace\first\stm_lib\src\stm32f10x_flash.c<br />       &#91;cc&#93; C:\CooCox\CoIDE\workspace\first\main.c: In function 'RCC_Conf':<br />       &#91;cc&#93; C:\CooCox\CoIDE\workspace\first\main.c:32:17: note: each undeclared identifier is reported only once for each function it appears in<br />       &#91;cc&#93;                  ^<br />       &#91;cc&#93; C:\CooCox\CoIDE\workspace\first\main.c:32:17: error: 'RCC_PLLSource_HSE_Div1' undeclared (first use in this function)<br />       &#91;cc&#93;    RCC_PLLConfig(RCC_PLLSource_HSE_Div1,RCC_PLLMul_3);<br /><br />BUILD FAILED<br />Total time: 3 seconds<br /></div><br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 3 minutach ]</span></strong><br /><br />A wszystko chyba przez to :<br />[syntax=c]/** @defgroup PLL_entry_clock_source <br />  * @{<br />  */<br /><br />#define RCC_PLLSource_HSI_Div2           ((uint32_t)0x00000000)<br /><br />#if !defined (STM32F10X_LD_VL) &amp;&amp; !defined (STM32F10X_MD_VL) &amp;&amp; !defined (STM32F10X_HD_VL) &amp;&amp; !defined (STM32F10X_CL)<br /> #define RCC_PLLSource_HSE_Div1           ((uint32_t)0x00010000)<br /> #define RCC_PLLSource_HSE_Div2           ((uint32_t)0x00030000)<br /> #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \<br />                                   ((SOURCE) == RCC_PLLSource_HSE_Div1) || \<br />                                   ((SOURCE) == RCC_PLLSource_HSE_Div2))<br />#else<br /> #define RCC_PLLSource_PREDIV1            ((uint32_t)0x00010000)<br /> #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \<br />                                   ((SOURCE) == RCC_PLLSource_PREDIV1))<br />#endif /* STM32F10X_CL */[/syntax]<br /><br /><strong><span style="color: #808000">------------------------ [ Dodano po: 29 minutach ]</span></strong><br /><br />[syntax=c]/**<br />  * @}<br />  */ <br /><br />/** @defgroup PLL_entry_clock_source <br />  * @{<br />  */<br /><br /><br /><br />#define RCC_PLLSource_HSE_Div1           ((uint32_t)0x00010000)<br />#define RCC_PLLSource_HSI_Div2           ((uint32_t)0x00000000)<br /><br />#if !defined (STM32F10X_LD_VL) &amp;&amp; !defined (STM32F10X_MD_VL) &amp;&amp; !defined (STM32F10X_HD_VL) &amp;&amp; !defined (STM32F10X_CL)<br /> #define RCC_PLLSource_HSE_Div1           ((uint32_t)0x00010000)<br /> #define RCC_PLLSource_HSE_Div2           ((uint32_t)0x00030000)<br /> #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \<br />                                   ((SOURCE) == RCC_PLLSource_HSE_Div1) || \<br />                                   ((SOURCE) == RCC_PLLSource_HSE_Div2))<br />#else<br /> #define RCC_PLLSource_PREDIV1            ((uint32_t)0x00010000)<br /> #define IS_RCC_PLL_SOURCE(SOURCE) (((SOURCE) == RCC_PLLSource_HSI_Div2) || \<br />                                   ((SOURCE) == RCC_PLLSource_PREDIV1))<br />#endif /* STM32F10X_CL */ <br /><br />/**<br />  * @}<br />  */[/syntax]<br /><br /><br />Zrobiłeś coś takiego, tzn. wyciągnałem definicje #define RCC_PLLSource_HSI_Div2           ((uint32_t)0x00000000)<br />przed dyrektywe kompilacji warunkowej, niby się kompiluje, ale czy tak może być?<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=396">Radzio M.</a> — 12 lut 2015, o 13:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2015-02-12T10:01:06+01:00</updated>
<published>2015-02-12T10:01:06+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118548#p118548</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118548#p118548"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118548#p118548"><![CDATA[
A Value Line to nie jest <a href="http://www.st.com/web/en/catalog/tools/FM116/SC959/SS1532/PF250863?sc=stm32-discovery"  class="postlink">ta</a> płytka?<p>Statystyki: Napisane przez Gość — 12 lut 2015, o 10:01</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[QuadMan]]></name></author>
<updated>2015-02-12T00:24:21+01:00</updated>
<published>2015-02-12T00:24:21+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118510#p118510</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118510#p118510"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118510#p118510"><![CDATA[
Witam.<br /><br />Czy korzystasz z: <a href="http://kamami.pl/stm32-discovery/205024-stm32l152c-disco.html"  class="postlink">http://kamami.pl/stm32-discovery/205024-stm32l152c-disco.html</a> ? Sorry za linka, ale chcę mieć pewność, na czym pracujesz. Jeśli to taki zestaw, to zwróć uwagę, że w standardzie w ogóle nie jest montowany kwarc do mikrokontrolera ( podobnie jak w większości tanich Disco ).<br />W kodzie masz: <br /><br />[syntax=c]void SetupClock()<br />{<br />      RCC_DeInit ();                    /* RCC system reset(for debug purpose)*/<br />      RCC_HSEConfig (RCC_HSE_ON);       /* Enable HSE                         */  // !!!!!!!! To przecież uruchamia HSE bez kwarca<br /> /* Wait till HSE is ready                                               */<br />      while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);         // I stoi tutaj do końca świata :-).<br /><br />// HSI musisz uruchomić !!!!<br /><br />      RCC_HSIConfig (RCC_HSI_ON);       /* Enable HSI           !!!!!              */  <br /><br />      /* Wait till HSI is ready                                               */<br />      while (RCC_GetFlagStatus(RCC_FLAG_HSIRDY) == RESET);         // Jakoś dalej polezie :-)<br /> <br />      RCC_HCLKConfig   (RCC_SYSCLK_Div1);   /* HCLK   = SYSCLK                */<br />      RCC_PCLK2Config  (RCC_HCLK_Div1);     /* PCLK2  = HCLK                  */<br />      RCC_PCLK1Config  (RCC_HCLK_Div2);     /* PCLK1  = HCLK/2                */<br />      RCC_ADCCLKConfig (RCC_PCLK2_Div4);    /* ADCCLK = PCLK2/4               */[/syntax]<br /><br />Tylko zobacz jeszcze, jaki masz generator HSI w swoim procku, bo z pamięci wydaje mi się, że 16MHz, więc trzeba jeszcze pętlę PLL zmienić, masz :<br /><br />[syntax=c]RCC_PLLConfig (0x00010000, RCC_PLLMul_9);[/syntax]<br /><br />to dopisz jeszcze:[syntax=c]RCC_PLLConfig (coś tam, cośtam - nie pamiętam , RCC_PLdiv_2);  // po prostu podziel wyjście PLL/2 - a jak ten rejestr i jaka wartość<br />                                                                                                      // nie pamiętam[/syntax]<br /><br />A w ogóle to spróbuj najpierw pomrugać LED-em, abyś miał pewność, że SYS_CLK masz ok. Jeśli natomiast kwarc wmontowałeś, to na oko nie widzę dlaczego kod nie działa.<br /><br />Pozdrawiam, QuadMan.<br /><br />P.S. <strong>wwojtek</strong> możesz mieć rację - sama biblioteka nie włącza zegara dla AFIO i faktycznie w kodzie Kolegi nie widzę by go włączył.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=5291">QuadMan</a> — 12 lut 2015, o 00:24</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2015-02-11T23:06:20+01:00</updated>
<published>2015-02-11T23:06:20+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118491#p118491</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118491#p118491"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118491#p118491"><![CDATA[
Ja niestety nie ogarniam bibliotek dla STM za dobrze. Nic mi się nie rzuca w oczy. Chyba że... ta biblioteka włącza zegar dla AFIO? Nie trzeba tego zrobić ręcznie?<p>Statystyki: Napisane przez Gość — 11 lut 2015, o 23:06</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-02-11T22:53:15+01:00</updated>
<published>2015-02-11T22:53:15+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118487#p118487</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118487#p118487"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118487#p118487"><![CDATA[
Kurcze <img src="https://forum.atnel.pl/images/smilies/icon_e_sad.gif" alt=":(" title="Smutny" /> no to sorry - W ARM'ach jestem dosc swiezy.<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 11 lut 2015, o 22:53</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Anonymous]]></name></author>
<updated>2015-02-11T22:48:22+01:00</updated>
<published>2015-02-11T22:48:22+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118486#p118486</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118486#p118486"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118486#p118486"><![CDATA[
@<strong>RafPe</strong> - ale to jest zupełnie inna płytka.<p>Statystyki: Napisane przez Gość — 11 lut 2015, o 22:48</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-02-11T19:34:38+01:00</updated>
<published>2015-02-11T19:34:38+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118433#p118433</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118433#p118433"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118433#p118433"><![CDATA[
Radku ... bo nie chce spamowac watku ktory uwazam za zamkniety w miare a link mial byc tylko referencja. Czy przeczytales w jakis sposob rozwiazano tam moj problem ? Bo wydaje mi sie , ze moglo Ci to uciec .....<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 11 lut 2015, o 19:34</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[RafPe]]></name></author>
<updated>2015-02-10T22:56:45+01:00</updated>
<published>2015-02-10T22:56:45+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118332#p118332</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118332#p118332"/>
<title type="html"><![CDATA[Re: STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118332#p118332"><![CDATA[
Zobacz tutaj <!-- l --><a class="postlink-local" href="http://forum.atnel.pl/topic10239.html#p114513" >topic10239.html#p114513</a><!-- l --> <br /><br />Polecam przeczytac caly watek bo ciekawe wypowiedzi naprawadzaja na wlasciwy trop <img src="https://forum.atnel.pl/images/smilies/icon_e_biggrin.gif" alt=":D" title="Bardzo szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=4344">RafPe</a> — 10 lut 2015, o 22:56</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[Radzio M.]]></name></author>
<updated>2015-02-10T20:16:28+01:00</updated>
<published>2015-02-10T20:16:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118302#p118302</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118302#p118302"/>
<title type="html"><![CDATA[STM32VL DISCOVERY USART]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=10601&amp;p=118302#p118302"><![CDATA[
Próby odebrania tego co wysyłam zakańczane klęską. Przejściówka działa. Kable krosowane. Środowisko COIDE.<br />USART_print.c<br />[syntax=c]#include &quot;stm32f10x.h&quot;<br />#include &quot;stm32f10x_gpio.h&quot;<br />#include &quot;stm32f10x_rcc.h&quot;<br />#include &quot;stm32f10x_usart.h&quot;<br />#include &lt;stdio.h&gt;<br /><br />/***************************************************************************//**<br /> * Declare function prototypes<br /> ******************************************************************************/<br />void SetupClock(void);<br />void SetupUSART(void);<br />void test(void);<br /><br />/***************************************************************************//**<br /> * @brief  Print &quot;Hello, World!&quot; via USART1<br /> ******************************************************************************/<br />void USART_Print(void)<br />{<br />    SetupClock();<br />    SetupUSART();<br /><br />    /* Output a message on Hyperterminal using printf function */<br />   // printf(&quot;Hello, World!\n\r&quot;);<br />    USART_SendData(USART1,USART_ReceiveData(USART1));<br /><br />}<br /><br /><br />void test(void){<br />USART_SendData(USART1,USART_ReceiveData(USART1));<br />}<br />/***************************************************************************//**<br /> * @brief Setup clocks<br /> ******************************************************************************/<br />void SetupClock()<br />{<br />      RCC_DeInit ();                    /* RCC system reset(for debug purpose)*/<br />      RCC_HSEConfig (RCC_HSE_ON);       /* Enable HSE                         */<br /><br />      /* Wait till HSE is ready                                               */<br />      while (RCC_GetFlagStatus(RCC_FLAG_HSERDY) == RESET);<br /><br />      RCC_HCLKConfig   (RCC_SYSCLK_Div1);   /* HCLK   = SYSCLK                */<br />      RCC_PCLK2Config  (RCC_HCLK_Div1);     /* PCLK2  = HCLK                  */<br />      RCC_PCLK1Config  (RCC_HCLK_Div2);     /* PCLK1  = HCLK/2                */<br />      RCC_ADCCLKConfig (RCC_PCLK2_Div4);    /* ADCCLK = PCLK2/4               */<br /><br />      /* PLLCLK = 8MHz * 9 = 72 MHz                                           */<br />      RCC_PLLConfig (0x00010000, RCC_PLLMul_9);<br /><br />      RCC_PLLCmd (ENABLE);                  /* Enable PLL                     */<br /><br />      /* Wait till PLL is ready                                               */<br />      while (RCC_GetFlagStatus(RCC_FLAG_PLLRDY) == RESET);<br /><br />      /* Select PLL as system clock source                                    */<br />      RCC_SYSCLKConfig (RCC_SYSCLKSource_PLLCLK);<br /><br />      /* Wait till PLL is used as system clock source                         */<br />      while (RCC_GetSYSCLKSource() != 0x08);<br /><br />      /* Enable USART1 and GPIOA clock                                        */<br />      RCC_APB2PeriphClockCmd (RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);<br /><br />}<br />/***************************************************************************//**<br /> * @brief Init USART1<br /> ******************************************************************************/<br />void SetupUSART()<br />{<br />      GPIO_InitTypeDef  GPIO_InitStructure;<br />      USART_InitTypeDef USART_InitStructure;<br /><br />      /* Enable GPIOA clock                                                   */<br />      RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE);<br /><br />      /* Configure USART1 Rx (PA10) as input floating                         */<br />      GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_10;<br />      GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_IN_FLOATING;<br />      GPIO_Init(GPIOA, &amp;GPIO_InitStructure);<br /><br />      /* Configure USART1 Tx (PA9) as alternate function push-pull            */<br />      GPIO_InitStructure.GPIO_Pin   = GPIO_Pin_9;<br />      GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br />      GPIO_InitStructure.GPIO_Mode  = GPIO_Mode_AF_PP;<br />      GPIO_Init(GPIOA, &amp;GPIO_InitStructure);<br /><br />      /* USART1 configured as follow:<br />            - BaudRate = 115200 baud<br />            - Word Length = 8 Bits<br />            - One Stop Bit<br />            - No parity<br />            - Hardware flow control disabled (RTS and CTS signals)<br />            - Receive and transmit enabled<br />            - USART Clock disabled<br />            - USART CPOL: Clock is active low<br />            - USART CPHA: Data is captured on the middle<br />            - USART LastBit: The clock pulse of the last data bit is not output to<br />                             the SCLK pin<br />      */<br />      USART_InitStructure.USART_BaudRate            = 9600;<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(USART1, &amp;USART_InitStructure);<br />      USART_Cmd(USART1, ENABLE);<br />}<br /><br />}[/syntax]<br /><br />main.c<br />[syntax=c]void USART_Print(void);<br />void test(void);<br /><br />int main(void)<br />{<br /><br />    //automatically added by CoIDE<br />USART_Print();<br /><br />while(1)<br />    {<br />test();<br />    }<br />}[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=396">Radzio M.</a> — 10 lut 2015, o 20:16</p><hr />
]]></content>
</entry>
</feed>