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

<title>ATNEL tech-forum</title>
<link href="https://forum.atnel.pl/index.php" />
<updated>2017-02-17T22:05:04+01:00</updated>

<author><name><![CDATA[ATNEL tech-forum]]></name></author>
<id>https://forum.atnel.pl/feed.php?f=46&amp;t=17643&amp;mode</id>
<entry>
<author><name><![CDATA[Nefarious19]]></name></author>
<updated>2017-02-16T22:40:28+01:00</updated>
<published>2017-02-16T22:40:28+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17643&amp;p=182815#p182815</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17643&amp;p=182815#p182815"/>
<title type="html"><![CDATA[Re: AKCELEROMETR LSM303D/SPI/STM32F429 BRAK PRAWIDŁOWEJ ODPO]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17643&amp;p=182815#p182815"><![CDATA[
Kolego, wrzuć kod w znaczniki sytntax=C <img src="https://forum.atnel.pl/images/smilies/icon_e_smile.gif" alt=":)" title="Szczęśliwy" /><p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=2500">Nefarious19</a> — 16 lut 2017, o 22:40</p><hr />
]]></content>
</entry>
<entry>
<author><name><![CDATA[piechu]]></name></author>
<updated>2017-02-17T22:05:04+01:00</updated>
<published>2017-02-16T20:35:42+01:00</published>
<id>https://forum.atnel.pl/viewtopic.php?t=17643&amp;p=182806#p182806</id>
<link href="https://forum.atnel.pl/viewtopic.php?t=17643&amp;p=182806#p182806"/>
<title type="html"><![CDATA[AKCELEROMETR LSM303D/SPI/STM32F429 BRAK PRAWIDŁOWEJ ODPOWIE]]></title>

<content type="html" xml:base="https://forum.atnel.pl/viewtopic.php?t=17643&amp;p=182806#p182806"><![CDATA[
Witam:). Będę bardzo wdzięczny za pomoc w rozwiązaniu następującego problemu: Próbuję odczytać wartości przyspieszenia na osi Y z akcelerometru LSM303D, jednak w odpowiedzi dostaję tylko wartość &quot;-1&quot;. W kodzie używam takiej konfiguracji akcelerometru jakiej używałem, gdy łączyłem się przez I2C (wtedy wszystko działało, ale prędkość I2C jest niewystarczająca, żeby wykorzystać cały potencjał LSM303D). <br /><br />[syntax=c]#include &quot;stm32f429xx.h&quot;<br /><br />uint8_t USART6_BUF&#91;50&#93;;<br />uint8_t data_0 = 0;<br />uint8_t data_1 = 0;<br />int16_t DATA = 1540;<br />uint8_t i = 0;<br />uint8_t adres1 = 0x20;<br />uint8_t adres2 = 0x21;<br />uint8_t settings1 = 0b10010010;<br />uint8_t settings2 = 0b11100000;<br /><br />int main(void){<br /><br />RCC-&gt;AHB1ENR |= (1&lt;&lt;2) | (1&lt;&lt;4); // GPIO C,E CLOCK ENABLE<br />RCC-&gt;APB2ENR |= (1&lt;&lt;5) | (1&lt;&lt;13); // USART6, SPI4 CLOCK ENABLE<br /><br />GPIOC-&gt;MODER |= (1&lt;&lt;13) | (1&lt;&lt;15); // PC6,PC7 - ALTERNATE FUNCTION<br />GPIOC-&gt;OSPEEDR |= (1&lt;&lt;12) | (1&lt;&lt;13) | (1&lt;&lt;14) | (1&lt;&lt;15); // PC6,PC7 - VERY HIGH SPEED<br />GPIOC-&gt;PUPDR |= (1&lt;&lt;12) | (1&lt;&lt;14); // PC6,PC7 - PULL UP<br />GPIOC-&gt;AFR&#91;0&#93; |= (1&lt;&lt;27) | (1&lt;&lt;31); // PC6,PC7 - AF8 (PC6 - TX, PC7 - RX)<br />GPIOE-&gt;MODER |= (1&lt;&lt;5) | (1&lt;&lt;11) | (1&lt;&lt;13); // PE2,PE5,PE6 - ALTERNATE FUNCTION<br />GPIOE-&gt;OSPEEDR |= (1&lt;&lt;4) | (1&lt;&lt;5) | (1&lt;&lt;10) | (1&lt;&lt;11) | (1&lt;&lt;12) | (1&lt;&lt;13); // PE2,PE5,PE6 - VERY HIGH SPEED<br />GPIOE-&gt;AFR&#91;0&#93; |= (1&lt;&lt;8) | (1&lt;&lt;10) | (1&lt;&lt;20) | (1&lt;&lt;22) | (1&lt;&lt;24) | (1&lt;&lt;26); // PE2,PE5,PE6 - ALTERNATE FUNCTION (PE2 - SCK, PE5 - MISO, PE6 - MOSI)<br /><br />USART6-&gt;CR1 |= (1&lt;&lt;13); // USART6 ENABLE<br />USART6-&gt;BRR |= 16000000/115200; // BAUD RATE = 115200<br />USART6-&gt;CR1 |= (1&lt;&lt;6); // TCIE = 1<br />USART6-&gt;CR1 |= (1&lt;&lt;3); // TE = 1<br /><br />SPI4-&gt;CR1 |= (1&lt;&lt;4); // PRESCALER = 8<br />SPI4-&gt;CR1 |= (1&lt;&lt;9) | (1&lt;&lt;8); // NSS - IGNORED<br />SPI4-&gt;CR1 |= (1&lt;&lt;1); //CPOL = 1<br />SPI4-&gt;CR1 |= (1&lt;&lt;2); // MASTER MODE<br />SPI4-&gt;CR2 |= (1&lt;&lt;7) | (1&lt;&lt;8); // TXEIE = 1, RXNEIE = 1<br />SPI4-&gt;CR1 |= (1&lt;&lt;6); // SPI4 ENABLE<br /><br />SysTick_Config(16000000/50);<br /><br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (1&lt;&lt;1)) );<br />SPI4-&gt;DR = adres1;<br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (1&lt;&lt;1)) );<br />SPI4-&gt;DR = settings1;<br /><br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (1&lt;&lt;1)) );<br />SPI4-&gt;DR = adres2;<br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (1&lt;&lt;1)) );<br />SPI4-&gt;DR = settings2;<br /><br />while(1)<br />{<br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (1&lt;&lt;1)) );<br />SPI4-&gt;DR = (0x2A || 0b10000000); // READ Y LOW PART VALUE<br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (0&lt;&lt;0)) );<br />data_0 = SPI4-&gt;DR;<br /><br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (1&lt;&lt;1)) );<br />SPI4-&gt;DR = (0x2B || 0b10000000); // READ Y HIGH PART VALUE<br />while(SPI4-&gt;SR == (SPI4-&gt;SR || (0&lt;&lt;0)) );<br />data_1 = SPI4-&gt;DR;<br /><br />DATA = ((data_1&lt;&lt;8)|(data_0));<br />itoa(DATA, USART6_BUF, 10);<br />}<br /><br /><br />} // main<br /><br /><br />void SysTick_Handler(void)<br />{<br /><br />while(USART6-&gt;SR == (USART6-&gt;DR || (0&lt;&lt;6)));<br />if(USART6_BUF&#91;i&#93; != 0)<br />{<br />USART6-&gt;DR = USART6_BUF&#91;i&#93;;<br />i++;<br />}<br />else<br />{<br /> USART6-&gt;DR = 0x0D;<br /> i = 0;<br />}<br /><br /><br />} // SysTick_Handler[/syntax]<p>Statystyki: Napisane przez <a href="https://forum.atnel.pl/memberlist.php?mode=viewprofile&amp;u=10511">piechu</a> — 16 lut 2017, o 20:35</p><hr />
]]></content>
</entry>
</feed>