Thanks you.... You are the best teacher for Electronics engineer
@almarri9001
2 жыл бұрын
I love your videos so much, always to the point, and explaining what you really need to know in order to implement without side-tracking, keep it up! I would like to know, will you be making a tutorial about the LVGL graphics library on the STM32?
@ControllersTech
2 жыл бұрын
Lvgl is coming soon..
@taiwantoklip
2 жыл бұрын
Great lecture,Specially to me (none STEM educated back ground--pure software-background ed newbie ) I hope can have more examples of how to read the spec and implementation of interfaces and protocols (ie:level up,from lib-user to driver/lib developer) Thanks million again.
@shrijithmjain2137
2 жыл бұрын
Your contents are just phenomenal.
@alicimen8935
2 жыл бұрын
THANK YOU SO MUCH KING
@RDGamezz
2 жыл бұрын
Love your videos !! can you please do a tutorial on how to interface DCMI with STM32
@saoz92
2 жыл бұрын
Thank you so much for this tutorial! Really well explained! I have implemented this solution with a Nucleo-L476RG Board analog with this tutorial and a BlueDot BME280 Advanced Weather Station with I2C. The code is building with no errors but all sensor values are 0 in the Live Expressions Tab. What could be the reason?
@ZOLDAIOQUE88MADACI
Жыл бұрын
Men your vids are just wow... I like the way you take things... I have a small request if it's possible... I wonder to use the stm32f4 with the INA219 Voltage current sensor based on i2c communication.. Some help with the registers ang gain configuration will be a great 😣. Thanks in advance
@user-rf5ik8ft3t
2 жыл бұрын
Thank you so much for the videos. Do you have plans or maybe have done already lessons about how to get the picture of Camera from DCMI interface?
@ControllersTech
2 жыл бұрын
Not yet!
@TB-jl9fr
2 жыл бұрын
Jez, i really understand why people get stuck with C. With Arduino you can simply wire the whole setup, enter the address and you are fine to go. This is such a pain in the ass :( I hate C. Sadly it's still and probably will be the industrial standard for a very long time.
@ControllersTech
2 жыл бұрын
Hmm. Someone have written the library for arduino too, so that you can plug and play.
@TB-jl9fr
2 жыл бұрын
@@ControllersTech Sure. But they are experienced in such things and maybe even do that with fun. I just want the neccessary drivers to build and integrate my system. It's like buying a new PC. Would you just want to write your own OS before you can use it? Or buying a car which you have to assemble first? I doubt ;)
@ControllersTech
2 жыл бұрын
Well yes, if you want to learn. This is where it call comes down to. Whether you want to learn, or just want to be done with the school/college project. Pre written libraries are good, but you can't bend them as per the job requirement and therefore one day you need to write one for your own application.
@alfredobadillo2280
Жыл бұрын
C is Easy. I Recomment to study Data Structures.
@domonkosszente-varga1296
Жыл бұрын
8:02 If I calculate right, a burst reading of 25 bytes starting from 0x88 will end up at 0xA0 as the last byte, but dig_H1 is stored at 0xA1 register, so you will miss it. Am I right?
@ControllersTech
Жыл бұрын
There is no 0xA0 register.
@domonkosszente-varga1296
Жыл бұрын
@@ControllersTech Thanks, you are right!
@quocngoanngo6938
Жыл бұрын
How can I this data in nextion display.Thanks
@yashdggjs
2 жыл бұрын
brooo its awesome please make a gps
@ControllersTech
2 жыл бұрын
Soon
@K4sik
2 жыл бұрын
Hi!!! I'm trying to connect bme280 to stm32f407. I followed your tutorial and I have a problem. The variables temperature, humidity, and pressure are equal to 0. Please help me if you can. Thank you very much.
@marekkubat1426
2 жыл бұрын
I have same issue. Only having stm32L152RE...
@electronicengineer14
5 ай бұрын
Did it work?
@mikejones-vd3fg
Ай бұрын
I had the same 0 reading issues with my stm32f411, turns out it was the i2c pins, I was using the wrong ones, it was pb3 and pb10 on my blackpill not pb6 and pb7 which gave me 0 reading. pb6 and 7 are the intuitive choice because they labeled as 1 in the pinout diagram. I thougth i tried them all but aparanly paried 10 with 8 intead of 3 is how that one evaded me for a while until i decided to check the pinout diagram more closely. I also found this arduino sketch that works without libraries while trying to debug this issue. Someone got this from a seller of the module they said when they couldnt get the module working with an adafruit library. It worked for me too. #include #define BME280_ADDRESS 0x76 unsigned long int hum_raw,temp_raw,pres_raw; signed long int t_fine; uint16_t dig_T1; int16_t dig_T2; int16_t dig_T3; uint16_t dig_P1; int16_t dig_P2; int16_t dig_P3; int16_t dig_P4; int16_t dig_P5; int16_t dig_P6; int16_t dig_P7; int16_t dig_P8; int16_t dig_P9; int8_t dig_H1; int16_t dig_H2; int8_t dig_H3; int16_t dig_H4; int16_t dig_H5; int8_t dig_H6; void setup() { uint8_t osrs_t = 1; //Temperature oversampling x 1 uint8_t osrs_p = 1; //Pressure oversampling x 1 uint8_t osrs_h = 1; //Humidity oversampling x 1 uint8_t mode = 3; //Normal mode uint8_t t_sb = 5; //Tstandby 1000ms uint8_t filter = 0; //Filter off uint8_t spi3w_en = 0; //3-wire SPI Disable uint8_t ctrl_meas_reg = (osrs_t 2)) >> 11) * ((signed long int)dig_P6); var2 = var2 + ((var1*((signed long int)dig_P5))2)+(((signed long int)dig_P4)2)*(var1>>2)) >> 13)) >>3) + ((((signed long int)dig_P2) * var1)>>1))>>18; var1 = ((((32768+var1))*((signed long int)dig_P1))>>15); if (var1 == 0) { return 0; } P = (((unsigned long int)(((signed long int)1048576)-adc_P)-(var2>>12)))*3125; if(P3) * (P>>3))>>13)))>>12; var2 = (((signed long int)(P>>2)) * ((signed long int)dig_P8))>>13; P = (unsigned long int)((signed long int)P + ((var1 + var2 + dig_P7) >> 4)); return P; } unsigned long int calibration_H(signed long int adc_H) { signed long int v_x1; v_x1 = (t_fine - ((signed long int)76800)); v_x1 = (((((adc_H 15) * (((((((v_x1 * ((signed long int)dig_H6)) >> 10) * (((v_x1 * ((signed long int)dig_H3)) >> 11) + ((signed long int) 32768))) >> 10) + (( signed long int)2097152)) * ((signed long int) dig_H2) + 8192) >> 14)); v_x1 = (v_x1 - (((((v_x1 >> 15) * (v_x1 >> 15)) >> 7) * ((signed long int)dig_H1)) >> 4)); v_x1 = (v_x1 < 0 ? 0 : v_x1); v_x1 = (v_x1 > 419430400 ? 419430400 : v_x1); return (unsigned long int)(v_x1 >> 12); }
@EmbeddedLHC
Ай бұрын
I suspect this might be irrelevant to you now, but it could be useful for others who encounter the same problem. I found that the float values for temperature, pressure, and humidity were being set to 0 if the chip ID wasn't correct. In the BME280_STM32.c file, you'll find the BMEReadRaw() function. This function checks the chip ID of the barometer. The ID set in the provided file is 0x60, so if the ID of your specific module isn't 0x60, the function returns -1, resulting in all measurement values being set to 0. You can see this in the BME280_Measure() function, where the condition for obtaining data is BMEReadRaw() == 0; otherwise, the measurements default to 0. I recommend starting by checking the device ID. You can run the debugger and use the live expressions view to check the chipID variable. In my case, I found the chipID to be decimal 88, which corresponds to 0x58. After getting the chipID, I substituted this new number into the condition in the BMEReadRaw() function. This allowed me to read data. Note that I was using a BMP280, which lacks the ability to measure humidity - which resulted in another issue outlined below and may or may not occur with the BME280. Hopefully, simply changing the ID condition resolves the BME280 issues. When using a BMP280, I noticed that the measurement values remained fixed. I modified the trimming parameters (after verifying that they were the same between the BME280 and BMP280 from the datasheets) to exclude humidity. Specifically, I changed trimdata[32] to trimdata[26] and deleted the trim parameters related to humidity. After doing this, I started getting non-constant and correct data. I hope this helps. But I think the first step in debugging is to check the chipID variable.
@nithishkumar6996
10 ай бұрын
i need bme680 code pls make a videos
@Jerry-xp3cw
6 ай бұрын
Hello, can this be used for BMP280 sensor, and by that I mean, can I just follow datasheet of BMP280 sensor and do the rest same as you did? Can you please provide the whole code cos I can't see it in the given link that u put in the description, only parts of it
@ControllersTech
6 ай бұрын
Yes you can do that. The link is fine. You can download the code at the bottom of the page.
@Jerry-xp3cw
6 ай бұрын
Ok, thank you very much!@@ControllersTech
@Jerry-xp3cw
5 ай бұрын
@@ControllersTech Hi again, one more question. Does it matter if I use STM32f446RE, are there any things I will have to adjust?
@fillempie1501
2 жыл бұрын
Are the temperature readings valid?28 degrees in your room? BME280 has a glitch for heating up which has impact on the temperature reading.
@ControllersTech
2 жыл бұрын
Yes the reading is fine..
@fillempie1501
2 жыл бұрын
@@ControllersTech Thanks.
@flaviopalomba6577
3 ай бұрын
can it work if I have stm32f303?
@ControllersTech
3 ай бұрын
It will work in any mcu that has I2C. And of course I am talking about the process, not the code.
@attilahcen8194
2 жыл бұрын
How Can I Display This Data in LCD 16x2 I2C Thanks
@ControllersTech
2 жыл бұрын
Convert to string using sprintf and send to display
@ibrahimsha9321
2 жыл бұрын
Nice dude🤗
@dobroliub1908
2 жыл бұрын
👍👍👍👍💪
@abdulrahmanmohamed31
2 жыл бұрын
will this library work if i configured i2c using registers ?
@ControllersTech
2 жыл бұрын
Sure. Just change the way of writing and reading data as per your library
@abdulrahmanmohamed31
2 жыл бұрын
@@ControllersTech sry about all the questions .. but im having trouble implementing this library with FreeRtos .. do you have an idea what could be the problem ? thank you
@ControllersTech
2 жыл бұрын
How can I possibly tell without knowing what's the problem
@TB-jl9fr
2 жыл бұрын
@@ControllersTech Actuallly i have the same issue but i tried to implement it by myself. I used the sensor_stream example from Boschs github repo but it's leading to a hard fault every time i try to debug it :/ I think the Problem is how i linked the bme280.read and write to the HAL_I2C but i'm not sure. You think you could help me if i show you my code?
Пікірлер: 46