{"id":4992,"date":"2021-02-16T10:56:15","date_gmt":"2021-02-16T10:56:15","guid":{"rendered":"http:\/\/fastbitlab.com\/?p=4992"},"modified":"2022-11-23T10:41:00","modified_gmt":"2022-11-23T05:11:00","slug":"exercise-i2c-slave-programming","status":"publish","type":"post","link":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/","title":{"rendered":"STM32 I2C Lecture 58 &#8211; Exercise: I2C slave programming"},"content":{"rendered":"<div class=\"boldgrid-section\" style=\"background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"container\">\n<div class=\"row\" style=\"padding-top: 50px; padding-bottom: 0px; background-image: linear-gradient(to left, #eeeeee, #eeeeee);\" data-bg-color-1=\"#EEEEEE\" data-bg-color-2=\"#EEEEEE\" data-bg-direction=\"to left\">\n<div class=\"col-md-1 col-sm-12 col-xs-12 col-lg-1\">\n<p>&nbsp;<\/p>\n<\/div>\n<div class=\"col-md-10 col-sm-12 col-xs-12 col-lg-10\">\n<h1 class=\"\" style=\"text-align: center; font-size: 32px; border-width: 0px; line-height: 47px;\"><span style=\"color: #000080;\">Exercise: I2C slave programming<\/span><\/h1>\n<div class=\"row bg-editor-hr-wrap\" style=\"border-width: 0px; margin-top: -25px;\">\n<div class=\"col-lg-12 col-md-12 col-xs-12 col-sm-12\">\n<div>\n<p>&nbsp;<\/p>\n<div class=\"bg-hr bg-hr-10 color2-color\" style=\"border-style: solid; border-width: 0px 0px 3px;\"><\/div>\n<p>&nbsp;<\/p>\n<\/div>\n<\/div>\n<\/div>\n<div class=\"row bg-editor-hr-wrap\">\n<hr>\n<\/div>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><b>Exercise:<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read and display data from the STM32 slave connected. First, the master has to get the length of the data from the slave to read subsequent data from the slave.<\/span><\/p>\n<ol class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Use I2C SCL = 100KHz (Standard mode)<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Use internal pull resistors for SDA and SCL lines.<\/span><\/li>\n<\/ol>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">The exercise is exactly the same as the previous one, but the difference is now the STM32 is a slave and Arduino is a master.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 20px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><b>Things required to do the exercise:&nbsp;<\/b><\/span><\/p>\n<ol class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\">\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Arduino board<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">ST board<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Some jumper wires<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"font-weight: 400; color: #000000;\">Bread board<\/span><\/li>\n<li style=\"font-weight: 400;\" aria-level=\"1\"><span style=\"color: #000000;\"><span style=\"font-weight: 400;\">2 pull-up resistors of value 4.7K<\/span><span style=\"font-weight: 400;\">\u03a9 (only if you are in doesn\u2019t support internal pull up resistors).<\/span><\/span><\/li>\n<\/ol>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">The connections for this exercise are as shown in Figure 1 and Figure 2.<\/span><\/p>\n<div class=\"mceTemp\"><\/div>\n<figure id=\"attachment_4995\" aria-describedby=\"caption-attachment-4995\" style=\"width: 743px\" class=\"wp-caption aligncenter\"><img fetchpriority=\"high\" decoding=\"async\" class=\" wp-image-4995\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-1-8.png\" alt=\"\" width=\"743\" height=\"253\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png 1297w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-300x102.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-768x261.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-1024x348.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-600x204.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-120x41.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-500x170.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-200x68.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-400x136.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-800x272.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8-1200x408.png 1200w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><figcaption id=\"caption-attachment-4995\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 1. Connection for Arduino and ST board.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_4996\" aria-describedby=\"caption-attachment-4996\" style=\"width: 743px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\" wp-image-4996\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-2-8.png\" alt=\"\" width=\"743\" height=\"359\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8.png 1791w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-300x145.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-768x371.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-1024x495.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-600x290.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-120x58.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-500x241.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-200x97.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-400x193.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-800x386.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-2-8-1200x580.png 1200w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><figcaption id=\"caption-attachment-4996\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 2. Connection for Arduino and ST board SPI pins.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\"><b>Steps:<\/b><\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">1. Make the connections, as shown in Figure 2. First, the transaction will be initiated from the Arduino board. Power your Arduino board and download the I2C slave sketch to Arduino, and the name of the sketch is 003I2CMasterRxString.ino (Figure 3).<\/span><\/p>\n<figure id=\"attachment_4997\" aria-describedby=\"caption-attachment-4997\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img decoding=\"async\" class=\" wp-image-4997\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-3-6.png\" alt=\"\" width=\"744\" height=\"396\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6.png 1919w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-300x160.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-768x409.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-1024x545.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-600x319.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-500x266.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-200x106.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-400x213.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-800x426.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-3-6-1200x638.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-4997\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 3. I2C slave sketch.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">2.Download the code into the Arduino by clicking on the upload button.<\/span><\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">3. Go to the tools and open the serial monitor (Figure 4).<\/span><\/p>\n<figure id=\"attachment_4998\" aria-describedby=\"caption-attachment-4998\" style=\"width: 743px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4998\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-4-6.png\" alt=\"\" width=\"743\" height=\"398\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6.png 1919w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-768x412.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-1024x549.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-600x322.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-500x268.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-200x107.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-400x214.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-800x429.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-4-6-1200x643.png 1200w\" sizes=\"(max-width: 743px) 100vw, 743px\" \/><figcaption id=\"caption-attachment-4998\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 4. Opening the serial monitor.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">4.&nbsp;<span style=\"font-weight: 400;\">Now the serial monitor is opened (Figure 5). On the serial monitor, it is printed that \u201cSend character \u201cs\u201d to begin\u201d. So, in order to trigger the I2C transactions with the slave, you have to type lowercase s on the serial monitor, and then you have to send it.<\/span><\/span><\/p>\n<figure id=\"attachment_4999\" aria-describedby=\"caption-attachment-4999\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-4999\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-5-6.png\" alt=\"\" width=\"744\" height=\"399\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6.png 1917w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-768x411.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-1024x549.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-600x321.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-500x268.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-200x107.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-400x214.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-800x429.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-5-6-1200x643.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-4999\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 5. Serial monitor.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"color: #000000;\">5.&nbsp;<span style=\"font-weight: 400;\">The STM32 slave will receive the I2C transactions generated by the master, and it will reply to the master, and then the master is going to display the message received on the serial port, as shown in Figure 6.<\/span><\/span><\/p>\n<figure id=\"attachment_5000\" aria-describedby=\"caption-attachment-5000\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-5000\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-6-6.png\" alt=\"\" width=\"744\" height=\"399\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6.png 1919w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-300x161.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-768x411.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-1024x548.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-600x321.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-120x64.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-500x268.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-200x107.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-400x214.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-800x428.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-6-6-1200x642.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5000\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 6. Received message displayed on the serial monitor.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<p class=\"\" style=\"border-width: 0px; font-family: 'Roboto Slab'; font-weight: 400; font-size: 17px; line-height: 30px;\" data-font-family=\"Roboto Slab\" data-font-weight=\"400\" data-font-style=\"\"><span style=\"font-weight: 400; color: #000000;\">All the I2C transactions are the same. There is no change in the I2C transactions. In I2C transactions to read the 1-byte length information from the slave, all the transactions shown in Figure 7 and Figure 8 are now generated by the Arduino board instead of the STM board. All the transactions are now triggered by the master, and the STM slave should respond to these I2C transactions.<\/span><\/p>\n<figure id=\"attachment_5001\" aria-describedby=\"caption-attachment-5001\" style=\"width: 744px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-5001\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-7-6.png\" alt=\"\" width=\"744\" height=\"241\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6.png 1758w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-300x97.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-768x249.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-1024x332.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-600x195.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-120x39.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-500x162.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-200x65.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-400x130.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-800x259.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-7-6-1200x389.png 1200w\" sizes=\"(max-width: 744px) 100vw, 744px\" \/><figcaption id=\"caption-attachment-5001\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 7. Data write \u2013 master sending command to slave.<\/span><\/figcaption><\/figure>\n<p class=\"\">&nbsp;<\/p>\n<figure id=\"attachment_5002\" aria-describedby=\"caption-attachment-5002\" style=\"width: 745px\" class=\"wp-caption aligncenter\"><img loading=\"lazy\" decoding=\"async\" class=\" wp-image-5002\" src=\"http:\/\/fastbitlab.com\/wp-content\/uploads\/2021\/01\/Figure-8-5.png\" alt=\"\" width=\"745\" height=\"252\" srcset=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5.png 1727w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-300x101.png 300w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-768x259.png 768w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-1024x346.png 1024w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-600x203.png 600w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-120x41.png 120w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-500x169.png 500w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-200x68.png 200w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-400x135.png 400w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-800x270.png 800w, https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-8-5-1200x405.png 1200w\" sizes=\"(max-width: 745px) 100vw, 745px\" \/><figcaption id=\"caption-attachment-5002\" class=\"wp-caption-text\"><span style=\"color: #000000;\">Figure 8. Data read \u2013 master reading response from the slave.<\/span><\/figcaption><\/figure>\n<p>&nbsp;<\/p>\n<div class=\"mceTemp\"><\/div>\n<\/div>\n<\/div>\n<\/div>\n<\/div>\n","protected":false},"excerpt":{"rendered":"<p>&nbsp; Exercise: I2C slave programming &nbsp; &nbsp; Exercise: Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read and display data from the STM32 slave connected. First, the master has to get the length of the data from the slave to [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":4995,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"ocean_post_layout":"","ocean_both_sidebars_style":"","ocean_both_sidebars_content_width":0,"ocean_both_sidebars_sidebars_width":0,"ocean_sidebar":"0","ocean_second_sidebar":"0","ocean_disable_margins":"enable","ocean_add_body_class":"","ocean_shortcode_before_top_bar":"","ocean_shortcode_after_top_bar":"","ocean_shortcode_before_header":"","ocean_shortcode_after_header":"","ocean_has_shortcode":"","ocean_shortcode_after_title":"","ocean_shortcode_before_footer_widgets":"","ocean_shortcode_after_footer_widgets":"","ocean_shortcode_before_footer_bottom":"","ocean_shortcode_after_footer_bottom":"","ocean_display_top_bar":"default","ocean_display_header":"default","ocean_header_style":"","ocean_center_header_left_menu":"0","ocean_custom_header_template":"0","ocean_custom_logo":0,"ocean_custom_retina_logo":0,"ocean_custom_logo_max_width":0,"ocean_custom_logo_tablet_max_width":0,"ocean_custom_logo_mobile_max_width":0,"ocean_custom_logo_max_height":0,"ocean_custom_logo_tablet_max_height":0,"ocean_custom_logo_mobile_max_height":0,"ocean_header_custom_menu":"0","ocean_menu_typo_font_family":"0","ocean_menu_typo_font_subset":"","ocean_menu_typo_font_size":0,"ocean_menu_typo_font_size_tablet":0,"ocean_menu_typo_font_size_mobile":0,"ocean_menu_typo_font_size_unit":"px","ocean_menu_typo_font_weight":"","ocean_menu_typo_font_weight_tablet":"","ocean_menu_typo_font_weight_mobile":"","ocean_menu_typo_transform":"","ocean_menu_typo_transform_tablet":"","ocean_menu_typo_transform_mobile":"","ocean_menu_typo_line_height":0,"ocean_menu_typo_line_height_tablet":0,"ocean_menu_typo_line_height_mobile":0,"ocean_menu_typo_line_height_unit":"","ocean_menu_typo_spacing":0,"ocean_menu_typo_spacing_tablet":0,"ocean_menu_typo_spacing_mobile":0,"ocean_menu_typo_spacing_unit":"","ocean_menu_link_color":"","ocean_menu_link_color_hover":"","ocean_menu_link_color_active":"","ocean_menu_link_background":"","ocean_menu_link_hover_background":"","ocean_menu_link_active_background":"","ocean_menu_social_links_bg":"","ocean_menu_social_hover_links_bg":"","ocean_menu_social_links_color":"","ocean_menu_social_hover_links_color":"","ocean_disable_title":"default","ocean_disable_heading":"default","ocean_post_title":"","ocean_post_subheading":"","ocean_post_title_style":"","ocean_post_title_background_color":"","ocean_post_title_background":0,"ocean_post_title_bg_image_position":"","ocean_post_title_bg_image_attachment":"","ocean_post_title_bg_image_repeat":"","ocean_post_title_bg_image_size":"","ocean_post_title_height":0,"ocean_post_title_bg_overlay":0.5,"ocean_post_title_bg_overlay_color":"","ocean_disable_breadcrumbs":"default","ocean_breadcrumbs_color":"","ocean_breadcrumbs_separator_color":"","ocean_breadcrumbs_links_color":"","ocean_breadcrumbs_links_hover_color":"","ocean_display_footer_widgets":"default","ocean_display_footer_bottom":"default","ocean_custom_footer_template":"0","ocean_post_oembed":"","ocean_post_self_hosted_media":"","ocean_post_video_embed":"","ocean_link_format":"","ocean_link_format_target":"self","ocean_quote_format":"","ocean_quote_format_link":"post","ocean_gallery_link_images":"off","ocean_gallery_id":[],"footnotes":""},"categories":[8],"tags":[23],"class_list":["post-4992","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-blog","tag-stm32-i2c-lectures","entry","has-media"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v27.3 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>STM32 I2C Lecture 58 - Exercise: I2C slave programming<\/title>\n<meta name=\"description\" content=\"I2C slave programming. Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"STM32 I2C Lecture 58 - Exercise: I2C slave programming\" \/>\n<meta property=\"og:description\" content=\"I2C slave programming. Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read\" \/>\n<meta property=\"og:url\" content=\"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/\" \/>\n<meta property=\"og:site_name\" content=\"FastBit EBA\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/fastbiteba\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-02-16T10:56:15+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2022-11-23T05:11:00+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png\" \/>\n\t<meta property=\"og:image:width\" content=\"1297\" \/>\n\t<meta property=\"og:image:height\" content=\"441\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/png\" \/>\n<meta name=\"author\" content=\"FastBitLab\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:creator\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:site\" content=\"@fastbiteba\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"FastBitLab\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"4 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\\\/\\\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#article\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/\"},\"author\":{\"name\":\"FastBitLab\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\"},\"headline\":\"STM32 I2C Lecture 58 &#8211; Exercise: I2C slave programming\",\"datePublished\":\"2021-02-16T10:56:15+00:00\",\"dateModified\":\"2022-11-23T05:11:00+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/\"},\"wordCount\":503,\"commentCount\":4,\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-8.png\",\"keywords\":[\"STM32 I2C Lectures\"],\"articleSection\":[\"Blog\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/\",\"name\":\"STM32 I2C Lecture 58 - Exercise: I2C slave programming\",\"isPartOf\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#primaryimage\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#primaryimage\"},\"thumbnailUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-8.png\",\"datePublished\":\"2021-02-16T10:56:15+00:00\",\"dateModified\":\"2022-11-23T05:11:00+00:00\",\"description\":\"I2C slave programming. Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read\",\"breadcrumb\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#primaryimage\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-8.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2021\\\/01\\\/Figure-1-8.png\",\"width\":1297,\"height\":441,\"caption\":\"Figure 1. Connection for Arduino and ST board.\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/exercise-i2c-slave-programming\\\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"STM32 I2C Lecture 58 &#8211; Exercise: I2C slave programming\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#website\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"name\":\"FastBit EBA\",\"description\":\"Your Online Academy of Embedded Systems\",\"publisher\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Organization\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#organization\",\"name\":\"FastBit EBA\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\",\"url\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"contentUrl\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/wp-content\\\/uploads\\\/2026\\\/04\\\/logo-EzNrEnyr.png\",\"width\":640,\"height\":640,\"caption\":\"FastBit EBA\"},\"image\":{\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/logo\\\/image\\\/\"},\"sameAs\":[\"https:\\\/\\\/www.facebook.com\\\/fastbiteba\\\/\",\"https:\\\/\\\/x.com\\\/fastbiteba\",\"https:\\\/\\\/www.linkedin.com\\\/in\\\/fastbit-embedded-brain-academy-b3167b124\\\/\",\"https:\\\/\\\/www.youtube.com\\\/channel\\\/UCa1REBV9hyrzGp2mjJCagBg\"]},{\"@type\":\"Person\",\"@id\":\"https:\\\/\\\/fastbitlab.com\\\/blog\\\/#\\\/schema\\\/person\\\/e32b38e733a0d76ffa7e6bc998652e5d\",\"name\":\"FastBitLab\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"url\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"contentUrl\":\"https:\\\/\\\/secure.gravatar.com\\\/avatar\\\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g\",\"caption\":\"FastBitLab\"},\"description\":\"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries.\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"STM32 I2C Lecture 58 - Exercise: I2C slave programming","description":"I2C slave programming. Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/","og_locale":"en_US","og_type":"article","og_title":"STM32 I2C Lecture 58 - Exercise: I2C slave programming","og_description":"I2C slave programming. Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read","og_url":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/","og_site_name":"FastBit EBA","article_publisher":"https:\/\/www.facebook.com\/fastbiteba\/","article_published_time":"2021-02-16T10:56:15+00:00","article_modified_time":"2022-11-23T05:11:00+00:00","og_image":[{"width":1297,"height":441,"url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png","type":"image\/png"}],"author":"FastBitLab","twitter_card":"summary_large_image","twitter_creator":"@fastbiteba","twitter_site":"@fastbiteba","twitter_misc":{"Written by":"FastBitLab","Est. reading time":"4 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#article","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/"},"author":{"name":"FastBitLab","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d"},"headline":"STM32 I2C Lecture 58 &#8211; Exercise: I2C slave programming","datePublished":"2021-02-16T10:56:15+00:00","dateModified":"2022-11-23T05:11:00+00:00","mainEntityOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/"},"wordCount":503,"commentCount":4,"publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png","keywords":["STM32 I2C Lectures"],"articleSection":["Blog"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/","url":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/","name":"STM32 I2C Lecture 58 - Exercise: I2C slave programming","isPartOf":{"@id":"https:\/\/fastbitlab.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#primaryimage"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#primaryimage"},"thumbnailUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png","datePublished":"2021-02-16T10:56:15+00:00","dateModified":"2022-11-23T05:11:00+00:00","description":"I2C slave programming. Now let\u2019s do one exercise where the STM32 is the I2C slave, and the Arduino board is the I2C master. The master should read","breadcrumb":{"@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#primaryimage","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2021\/01\/Figure-1-8.png","width":1297,"height":441,"caption":"Figure 1. Connection for Arduino and ST board."},{"@type":"BreadcrumbList","@id":"https:\/\/fastbitlab.com\/blog\/exercise-i2c-slave-programming\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/fastbitlab.com\/blog\/"},{"@type":"ListItem","position":2,"name":"STM32 I2C Lecture 58 &#8211; Exercise: I2C slave programming"}]},{"@type":"WebSite","@id":"https:\/\/fastbitlab.com\/blog\/#website","url":"https:\/\/fastbitlab.com\/blog\/","name":"FastBit EBA","description":"Your Online Academy of Embedded Systems","publisher":{"@id":"https:\/\/fastbitlab.com\/blog\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/fastbitlab.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Organization","@id":"https:\/\/fastbitlab.com\/blog\/#organization","name":"FastBit EBA","url":"https:\/\/fastbitlab.com\/blog\/","logo":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/","url":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","contentUrl":"https:\/\/fastbitlab.com\/blog\/wp-content\/uploads\/2026\/04\/logo-EzNrEnyr.png","width":640,"height":640,"caption":"FastBit EBA"},"image":{"@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/fastbiteba\/","https:\/\/x.com\/fastbiteba","https:\/\/www.linkedin.com\/in\/fastbit-embedded-brain-academy-b3167b124\/","https:\/\/www.youtube.com\/channel\/UCa1REBV9hyrzGp2mjJCagBg"]},{"@type":"Person","@id":"https:\/\/fastbitlab.com\/blog\/#\/schema\/person\/e32b38e733a0d76ffa7e6bc998652e5d","name":"FastBitLab","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","url":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/9230d0f9bdef28b63a01e7ca274ee7b2e8ed9abe932ee564af8809caaf52a0c8?s=96&d=mm&r=g","caption":"FastBitLab"},"description":"The FastBit Embedded Brain Academy uses the power of internet to bring the online courses related to the field of embedded system programming, Real time operating system, Embedded Linux systems, etc at your finger tip with very low cost. Backed with strong experience of industry, we have produced lots of courses with the customer enrolment over 3000+ across 100+ countries."}]}},"_links":{"self":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4992","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/comments?post=4992"}],"version-history":[{"count":5,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4992\/revisions"}],"predecessor-version":[{"id":12597,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/posts\/4992\/revisions\/12597"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media\/4995"}],"wp:attachment":[{"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/media?parent=4992"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/categories?post=4992"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fastbitlab.com\/blog\/wp-json\/wp\/v2\/tags?post=4992"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}