{"id":229,"date":"2017-11-23T00:03:05","date_gmt":"2017-11-22T23:03:05","guid":{"rendered":"http:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=229"},"modified":"2023-03-04T23:47:05","modified_gmt":"2023-03-04T22:47:05","slug":"15-spi_lolevel-library-stm32f4","status":"publish","type":"page","link":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/15-spi_lolevel-library-stm32f4\/","title":{"rendered":"15-SPI_LoLevel-Library (STM32F4)"},"content":{"rendered":"<p><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-previous\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/14-adc_dma-mode-stm32f4\/\" title=\"14-ADC_DMA-Mode (STM32F4)\"><span class=\"meta-nav\">\u2190<\/span> 14-ADC_DMA-Mode (STM32F4)<\/a><\/div><\/div><!-- #nav-below --><div id=\"nav-below\" class=\"navigation\"><div class=\"nav-next\"><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/16-spi_max5250-library-stm32f4\/\" title=\"16-SPI_MAX5250-Library (STM32F4)\">16-SPI_MAX5250-Library (STM32F4) <span class=\"meta-nav\">&rarr;<\/span><\/a><\/div><\/div><!-- #nav-below --><\/p>\n<p>-diese Library dient zum benutzen der SPI-Schnittstelle im Master-Mode<\/p>\n<p>-die SPI-Pins die benutzt werden sollen, m\u00fcssen im C-File eingetragen werden<br \/>\n(im H-File kann der Clock-Vorteiler gew\u00e4hlt werden)<\/p>\n<p>-die Library kann als LoLevel-Funktion nur die Schnittstelle (in einem der 4 SPI-Modes) initialisieren und ein Byte per SPI senden\/empfangen. Das setzen der ChipSelect-Leitung muss von der \u00dcbergeordneten Funktion gemacht werden (siehe z.B. <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/?page_id=231\">MAX5250-Lib<\/a>)<\/p>\n<p>-es gibt 3 identische Librarys, getrennt f\u00fcr SPI1, SPI2 und SPI3<\/p>\n<p>-im Beispiel wurde SPI2 benutzt mit dieser Pinbelegung :<\/p>\n<pre lang=\"c\" line=\"1\">SCK an PB13\r\nMOSI an PB15\r\nMISO an PB14<\/pre>\n<p><strong>Voraussetzungen :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">Benutzte Module der CooCox-IDE : GPIO, SPI\r\nBenutzte Librarys : keine<\/pre>\n<p><strong>Enumerationen (f\u00fcr SPI1) :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">typedef enum {\r\n  SPI_MODE_0 = 0,  \/\/ CPOL=0, CPHA=0\r\n  SPI_MODE_1,      \/\/ CPOL=0, CPHA=1\r\n  SPI_MODE_2,      \/\/ CPOL=1, CPHA=0\r\n  SPI_MODE_3       \/\/ CPOL=1, CPHA=1 \r\n}SPI1_Mode_t;<\/pre>\n<p><strong>Funktionen (f\u00fcr SPI1) :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">ErrorStatus UB_SPI1_Init(SPI1_Mode_t mode); \/\/ zum initialisieren der SPI-Schnittstelle\r\nuint8_t UB_SPI1_SendByte(uint8_t wert);     \/\/ zum senden\/empfangen eines Bytes<\/pre>\n<p><strong>Beispiel :<\/strong><\/p>\n<pre lang=\"c\" line=\"1\">\/\/--------------------------------------------------------------\r\n\/\/ File     : main.c\r\n\/\/ Datum    : 04.03.2013\r\n\/\/ Version  : 1.0\r\n\/\/ Autor    : UB\r\n\/\/ EMail    : mc-4u(@)t-online.de\r\n\/\/ Web      : www.mikrocontroller-4u.de\r\n\/\/ CPU      : STM32F4\r\n\/\/ IDE      : CooCox CoIDE 1.7.0\r\n\/\/ Module   : CMSIS_BOOT, M4_CMSIS_CORE\r\n\/\/ Funktion : Demo der SPI-LoLevel-Library\r\n\/\/ Hinweis  : Diese zwei Files muessen auf 8MHz stehen\r\n\/\/              \"cmsis_boot\/stm32f4xx.h\"\r\n\/\/              \"cmsis_boot\/system_stm32f4xx.c\"\r\n\/\/--------------------------------------------------------------\r\n\r\n#include \"main.h\"\r\n#include \"stm32_ub_spi2.h\"\r\n\r\n\/\/--------------------------------------------------------------\r\n\/\/ ein Byte per SPI senden und empfangen\r\n\/\/--------------------------------------------------------------\r\nuint8_t spi_send(uint8_t wert)\r\n{\r\n  uint8_t ret_wert;\r\n\r\n  \/\/ hier Code einf\u00fcgen und\r\n  \/\/ ChipSelect-Pin auf LO legen\r\n\r\n  \/\/ byte senden und empfangen\r\n  ret_wert=UB_SPI2_SendByte(wert);\r\n\r\n  \/\/ hier Code einf\u00fcgen und\r\n  \/\/ ChipSelect-Pin auf HI legen\r\n\r\n  return(ret_wert);\r\n}\r\n\r\n\/\/--------------------------------------------------------------\r\nint main(void)\r\n{\r\n  uint8_t wert;\r\n\r\n  SystemInit(); \/\/ Quarz Einstellungen aktivieren\r\n\r\n  \/\/ SPI2 im Mode0 initialisieren\r\n  UB_SPI2_Init(SPI_MODE_0);\r\n\r\n  \/\/ den Wert 0x45 per SPI senden\r\n  \/\/ und ein Byte empfangen\r\n  wert=spi_send(0x45);\r\n\r\n  while(1)\r\n  {\r\n\r\n  }\r\n}\r\n<\/pre>\n<p>Hier die Library zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/ub_stm32f4_spi_v100.zip\">ub_stm32f4_spi_v100<\/a><\/p>\n<p>Hier der komplette CooCox-Projektordner zum\u00a0<strong>Download :<\/strong><\/p>\n<p><a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-content\/uploads\/2013\/03\/Demo_15_SPI_LoLevel.zip\">Demo_15_SPI_LoLevel<\/a><\/p>\n<h3 id=\"comments-title\">16 Antworten auf <em>15-SPI_LoLevel-Library (STM32F4)<\/em><\/h3>\n<ol class=\"commentlist\">\n<li id=\"li-comment-16\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-16\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/747f7d17cf5461288d31b27a8b16c5fa?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Tobias<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. April 2013 um 13:07<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hallo,<\/p>\n<p>ich wollte nur Danke sagen- Deine Beispiele sind super! Sie erm\u00f6glichen f\u00fcr mbed\/Arduino Umsteiger einen leichte(ren)n Einstieg.<\/p>\n<p>Ich versuche mich mal mit nRF24-Sensor und SPI display\u2026 mal gespannt ob es klappt!<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-20\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-20\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">5. April 2013 um 17:25<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Danke f\u00fcr das Lob\u2026sag bescheid falls es Probleme gibt (und auch wenn es funktioniert <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":-)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1587\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1587\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/af5be9fa3f95b3ec9c424ed130b7f2d3?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Cortex-Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">24. April 2014 um 18:28<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Im C-File in der Lib f\u00fcr SPI1 ist ein Fehler bei der Pinzuweisung. Es muss so hei\u00dfen:<\/p>\n<p>{GPIOA,GPIO_Pin_5,RCC_AHB1Periph_GPIOA,GPIO_PinSource5}, \/\/ SCK an PA5<br \/>\n{GPIOA,GPIO_Pin_7,RCC_AHB1Periph_GPIOA,GPIO_PinSource7}, \/\/ MOSI an PB5<br \/>\n{GPIOA,GPIO_Pin_6,RCC_AHB1Periph_GPIOA,GPIO_PinSource6}, \/\/ MISO an PB4<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1596\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1596\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">25. April 2014 um 19:40<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>das ist kein Fehler, die SPI-Signale k\u00f6nnen an verschiedene Pins \u201cgeroutet\u201d werden\u2026in meinem Beispiel hab ich \u201cPA5, PB5 PB4\u2033 benutzt\u2026du hast \u201cPA5, PA7, PA6\u2033 benutzt \u2026das geht genauso.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1612\" class=\"comment even depth-3\">\n<div id=\"comment-1612\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/af5be9fa3f95b3ec9c424ed130b7f2d3?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Cortex-Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">27. April 2014 um 20:22<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ach Mensch, du hast recht, sorry.<br \/>\nNach langer Suche habe ich meinen Fehler gefunden, und aus dem Grund hast du bestimmt auch die anderen Pins verwendet.<br \/>\nDamit sonst keiner mehr gefrustet sich wundert wieso es nicht funktioniert: Die Pins von PortA 5,6,7 werden bei dem Discovery Board schon verwendet. Man sollte somit unbedingt bei eigener externer Beschaltung aufpassen. Mit den anderen Pins funktioniert es wunderbar.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1613\" class=\"comment odd alt depth-4\">\n<div id=\"comment-1613\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">27. April 2014 um 22:42<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Es muss aber trotzdem mit A 5,6,7 Funktionieren. SPI k\u00f6nnen X Devices h\u00e4ngen. Brauchen nur alle einen eigenen CS Pin<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1617\" class=\"comment even depth-5\">\n<div id=\"comment-1617\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/af5be9fa3f95b3ec9c424ed130b7f2d3?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Cortex-Einsteiger<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">28. April 2014 um 18:28<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Da stimme ich dir im allgemeinen zu, allerdings habe ich hier vor mir den Gegenbeweis, auch wenn ich es mir nicht erkl\u00e4ren kann.<br \/>\nSenden funktioniert, Daten empfangen auch, aber die empfangenen Daten sind kaputt.<\/p>\n<p>Zum Gl\u00fcck hat man genug andere Peripherie zur Auswahl^^<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1618\" class=\"comment odd alt thread-even depth-1\">\n<div id=\"comment-1618\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/1.gravatar.com\/avatar\/b894d67379dd0647dd316009f47155d2?s=40&amp;d=http%3A%2F%2F1.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">Joerg B.<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">30. April 2014 um 06:40<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Hast du den CS Pin des ungenutzten SPI Mitbenutzer auf High gelegt?<br \/>\nAnsonsten kann es nicht Funktionieren.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<li id=\"li-comment-1928\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-1928\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/49ca77d516e804517cd4ba09336a547d?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">gripper<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">8. Juli 2014 um 17:20<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>W\u00e4re f\u00fcr Hilfe mit dem Chipselect dankbar. Will ihn an Pin PD2 legen, mit folgendem Code.<br \/>\n<code><br \/>\nGPIO_InitTypeDef GPIO_InitStructure;<\/code><\/p>\n<p>GPIO_InitStructure.GPIO_Pin = GPIO_Pin_2;<br \/>\nGPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF;<br \/>\nGPIO_InitStructure.GPIO_OType = GPIO_OType_PP;<br \/>\nGPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;<br \/>\nGPIO_InitStructure.GPIO_PuPd = GPIO_PuPd_NOPULL;<br \/>\nGPIO_Init(GPIOD, &amp;GPIO_InitStructure);<\/p>\n<p>Mit dem folgenden Code soll er auf high gesetzt werde<br \/>\n<code><br \/>\nGPIO_SetBits(GPIOD, GPIO_Pin_2);<br \/>\n<\/code><br \/>\nund der folgende Code um ihn auf Low zu setzen:<br \/>\n<code><br \/>\nGPIO_ResetBits(GPIOD, GPIO_Pin_2);<br \/>\n<\/code><br \/>\nAber an PD2 tut sich irgendwie nichts. Ich seh an nem Oszilloskopmit digitalen Eing\u00e4ngen nichts. Die Chipselect Leitung ist dauerhaft Low.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1930\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1930\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">8. Juli 2014 um 21:38<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>ist der Clock an ? und Mode_OUT statt AF<br \/>\n<code><br \/>\nRCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);<br \/>\nGPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;<br \/>\n<\/code><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-1932\" class=\"comment even thread-even depth-1\">\n<div id=\"comment-1932\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/49ca77d516e804517cd4ba09336a547d?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">gripper<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">9. Juli 2014 um 07:44<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>Vielen Dank!<br \/>\n<code>GPIO_InitStructure.GPIO_Mode = GPIO_Mode_OUT;<\/code><br \/>\nbrachte Abhilfe.<\/p>\n<p><code>RCC_AHB1PeriphClockCmd(RCC_AHB1Periph_GPIOD, ENABLE);<\/code><br \/>\nhat aber keine Auswirkung. Das ist ja nicht der generelle Clock des SPI Bu, oder?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-1935\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-1935\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">9. Juli 2014 um 18:51<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>nein, das ist der Clock f\u00fcr GPIO-Port-D aber wenn es auch ohne funktioniert, wird dieser schon an einer anderen Stelle im Programm aktiviert.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<li id=\"li-comment-4668\" class=\"comment even thread-odd thread-alt depth-1\">\n<div id=\"comment-4668\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/622d18a1941b67777aabcd4d93f040c8?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">mahmud ibrahim<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">21. M\u00e4rz 2016 um 18:21<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>First of all, thanks for you nice tutorial. keep up the good work.<br \/>\nWhy don\u2019t you make a library for nrf24L01 RF module with STM32??? May be you can create a RF mesh network like RF24 Mesh Network of Arduino.<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4672\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-2\">\n<div id=\"comment-4672\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">21. M\u00e4rz 2016 um 18:30<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>because i dont have such a module <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":-)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4678\" class=\"comment even depth-3\">\n<div id=\"comment-4678\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/622d18a1941b67777aabcd4d93f040c8?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">mahmud ibrahim<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">24. M\u00e4rz 2016 um 20:36<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>I apologize,if i hurt you. I didn\u2019t mean too. your libraries for STM32F4 is excellent. I really really appreciate it. Thank you so much for your effort and time for making it so useful.<br \/>\nI would like to know that, Do you have any plan for creating a library for NRF24L01 and GPS module?<\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/p>\n<ul class=\"children\">\n<li id=\"li-comment-4679\" class=\"comment byuser comment-author-admin_ub bypostauthor odd alt depth-4\">\n<div id=\"comment-4679\">\n<div class=\"comment-author vcard\"><img loading=\"lazy\" decoding=\"async\" class=\"avatar avatar-40 photo\" src=\"http:\/\/0.gravatar.com\/avatar\/67426419ead44d5afa132e92685bb460?s=40&amp;d=http%3A%2F%2F0.gravatar.com%2Favatar%2Fad516503a11cd5ca435acc9bb6523536%3Fs%3D40&amp;r=G\" alt=\"\" width=\"40\" height=\"40\" \/><cite class=\"fn\">admin_ub<\/cite> <span class=\"says\">sagt:<\/span><\/div>\n<p><!-- .comment-author .vcard --><\/p>\n<div class=\"comment-meta commentmetadata\">24. M\u00e4rz 2016 um 21:21<\/div>\n<p><!-- .comment-meta .commentmetadata --><\/p>\n<div class=\"comment-body\">\n<p>no problem. its just so that i cant make software without hardware.<br \/>\nso i need to buy some nrf24 boards but thats not a great deal.<br \/>\nmy focus is at the moment on the osci project\u2026if you want<br \/>\nto speedup a nrf24 lib perhaps you can donate the hardware costs <img decoding=\"async\" class=\"wp-smiley\" src=\"wp-includes\/images\/smilies\/icon_smile.gif\" alt=\":-)\" \/><\/p>\n<\/div>\n<\/div>\n<p><!-- #comment-## --><\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ul>\n<\/li>\n<\/ol>\n","protected":false},"excerpt":{"rendered":"<p>-diese Library dient zum benutzen der SPI-Schnittstelle im Master-Mode -die SPI-Pins die benutzt werden sollen, m\u00fcssen im C-File eingetragen werden (im H-File kann der Clock-Vorteiler gew\u00e4hlt werden) -die Library kann als LoLevel-Funktion nur die Schnittstelle (in einem der 4 SPI-Modes) &hellip; <a href=\"https:\/\/mikrocontroller.bplaced.net\/wordpress\/stm32f4\/komplette-library-liste-stm32f4\/15-spi_lolevel-library-stm32f4\/\">Weiterlesen <span class=\"meta-nav\">&rarr;<\/span><\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"parent":144,"menu_order":15,"comment_status":"open","ping_status":"closed","template":"","meta":{"footnotes":""},"categories":[128],"tags":[9,49,7],"class_list":["post-229","page","type-page","status-publish","hentry","category-stm32f4","tag-library","tag-spi","tag-stm32f4"],"_links":{"self":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/229","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages"}],"about":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/types\/page"}],"author":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/comments?post=229"}],"version-history":[{"count":5,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/229\/revisions"}],"predecessor-version":[{"id":3665,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/229\/revisions\/3665"}],"up":[{"embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/pages\/144"}],"wp:attachment":[{"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/media?parent=229"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/categories?post=229"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/mikrocontroller.bplaced.net\/wordpress\/wp-json\/wp\/v2\/tags?post=229"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}