Forwarded from Raspberry Project
فانکشن بافر FIFO جهت استفادهدرر میکروهای Stm32 و توابع Hal
/***Interupt Recived Uart Fifo Buffer Stm32 Hal***/
void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart){
cnt++;
uint8_t i;
if(huart->Instance == USART1);
{
if(Rx_indx==0){for(i=0;i<150;i++)Rx_Buffer[i]=0;}
if(UART_Buffer[0]==36)
{
Rx_indx=0;
}
else if(UART_Buffer[0]!=UART_BUFFER_SIZE)
{
Rx_Buffer[Rx_indx++]=UART_Buffer[0];
}
else
{
Rx_indx=0;
Transfer_cplt=1;
}
HAL_UART_Receive_IT(&huart1,UART_Buffer,UART_BUFFER_SIZE);
}
}
@Rasppberryproject
/***Interupt Recived Uart Fifo Buffer Stm32 Hal***/
void HAL_UART_RxCpltCallback (UART_HandleTypeDef *huart){
cnt++;
uint8_t i;
if(huart->Instance == USART1);
{
if(Rx_indx==0){for(i=0;i<150;i++)Rx_Buffer[i]=0;}
if(UART_Buffer[0]==36)
{
Rx_indx=0;
}
else if(UART_Buffer[0]!=UART_BUFFER_SIZE)
{
Rx_Buffer[Rx_indx++]=UART_Buffer[0];
}
else
{
Rx_indx=0;
Transfer_cplt=1;
}
HAL_UART_Receive_IT(&huart1,UART_Buffer,UART_BUFFER_SIZE);
}
}
@Rasppberryproject
Forwarded from 🐍 Python & Raspberry 🐍 (F.Naserizadeh)
طراحی سیستم های امبدد و اینترنت اشیا توسط ARM 👇
🌟 انتشارات وایلی 2018
🔰 @raspberry_python
🔰 @RaspberryProject
🌟 انتشارات وایلی 2018
🔰 @raspberry_python
🔰 @RaspberryProject
Forwarded from 🐍 Python & Raspberry 🐍 (F.Naserizadeh)
Xiao,_Perry_Designing_embedded_systems.pdf
24.6 MB
طراحی سیستم های امبدد و اینترنت اشیا توسط ARM
🌟 انتشارات وایلی 2018
🔰 @raspberry_python
🔰 @RaspberryProject
🌟 انتشارات وایلی 2018
🔰 @raspberry_python
🔰 @RaspberryProject
Forwarded from C & micro & fpga
Jozve 0 ta 100 C_@Electrovolt_ir.pdf
1.4 MB
Forwarded from KnowledgePlus.ir
اگر برای تفسیر عبارت های پیچیده در زبان C دچار مشکل هستید، مطالب موجود در دو لینک زیر را مطالعه کنید:
codeproject.com/Articles/7042/How-to-interpret-complex-C-C-declarations
geeksforgeeks.org/complicated-declarations-in-c
@KnowledgePlus
codeproject.com/Articles/7042/How-to-interpret-complex-C-C-declarations
geeksforgeeks.org/complicated-declarations-in-c
@KnowledgePlus
Forwarded from Sisoog مرجع متن باز الکترونیک-سیسوگ
📌آموزش میکروکنترلر STM8: چگونه برنامه خود را روی STM8 آپلود کنیم؟
👈#سیسوگ #سیسوگی_ها #STM #STM8 #پروگرامر #upload #STVP #STVD #ST_Link #بارگذاری_برنامه #آپلود_برنامه #Cosmin_C
😃 سلام دوستان،
🔙 سیسوگ در مقاله پنجم شما را با نرم افزارهای مورد نیاز برای میکروکنترلر STM8 آشنا کرد.
⚡️ در این مقاله نحوه پروگرام کردن میکروکنترلر STM8 را با هم آموزش می بینیم. پس با سیسوگ همراه باشید.
✌🏻 بارگذاری برنامه روی میکروکنترلر STM8 را می توانیم به دو روش با استفاده از نرم افزار STVP و یا با استفاده از نرم افزار STVD انجام دهیم.
✅ نرم افزار STVP
در ابتدا بارگذاری به وسیله STVP را توضیح می دهیم. نرم افزار STVP را دانلود و نصب نمایید. نرم افزار را اجرا نمایید. در اولین پنجره پروگرامر ST-Link، رابط SWIM و تراشه مورد نظر را انتخاب نمایید و ...
✅ نرم افزار STVD
پس از کامپایل و ساخت پروژه بدون هیچ گونه خطایی، کامپایلر فایل خروجی S19 را در پوشه Debug یا Release بسته به اینکه کدام کامپایل انتخاب شده است، تولید می کند. به طور پیش فرض، حالت Debug انتخاب می شود مگر اینکه کاربر شخصاً آن را تغییر دهد، بنابراین فایل S19 مورد نظر ما در این پوشه قرار دارد. در ابتدا ما باید رابط پروگرامر را باز کنیم و ...
ادامه مطلب
📣 عضویت در کانال تلگرام سیسوگ
👈#سیسوگ #سیسوگی_ها #STM #STM8 #پروگرامر #upload #STVP #STVD #ST_Link #بارگذاری_برنامه #آپلود_برنامه #Cosmin_C
😃 سلام دوستان،
🔙 سیسوگ در مقاله پنجم شما را با نرم افزارهای مورد نیاز برای میکروکنترلر STM8 آشنا کرد.
⚡️ در این مقاله نحوه پروگرام کردن میکروکنترلر STM8 را با هم آموزش می بینیم. پس با سیسوگ همراه باشید.
✌🏻 بارگذاری برنامه روی میکروکنترلر STM8 را می توانیم به دو روش با استفاده از نرم افزار STVP و یا با استفاده از نرم افزار STVD انجام دهیم.
✅ نرم افزار STVP
در ابتدا بارگذاری به وسیله STVP را توضیح می دهیم. نرم افزار STVP را دانلود و نصب نمایید. نرم افزار را اجرا نمایید. در اولین پنجره پروگرامر ST-Link، رابط SWIM و تراشه مورد نظر را انتخاب نمایید و ...
✅ نرم افزار STVD
پس از کامپایل و ساخت پروژه بدون هیچ گونه خطایی، کامپایلر فایل خروجی S19 را در پوشه Debug یا Release بسته به اینکه کدام کامپایل انتخاب شده است، تولید می کند. به طور پیش فرض، حالت Debug انتخاب می شود مگر اینکه کاربر شخصاً آن را تغییر دهد، بنابراین فایل S19 مورد نظر ما در این پوشه قرار دارد. در ابتدا ما باید رابط پروگرامر را باز کنیم و ...
ادامه مطلب
📣 عضویت در کانال تلگرام سیسوگ
آموزش وقفه خارجی در stm32f0 با cubemx
https://letanphuc.net/2015/03/stm32f0-tutorial-3-external-interrupts/
🔰 @c_micro
https://letanphuc.net/2015/03/stm32f0-tutorial-3-external-interrupts/
🔰 @c_micro
LTP's archive
STM32F0 Tutorial 3: External Interrupts
In the last post, we figured out how to make the LED blink and learn some GPIO functions including writing, toggling, and reading. In this STM32F0 tutorial, we will learn how to configure and use GPIOs as an external interrupt signal to trigger an LED without…
Forwarded from Sisoog مرجع متن باز الکترونیک-سیسوگ
📌آموزش میکروکنترلر STM32 : تایمر واچ داگ و وقفه خطا
👈#سیسوگ #سیسوگی_ها #ARM #STM #آموزش #وقفه_خارجی #interrupt #STM32 #watch_dog #وقفه_خطا #تایمر_واچ_داگ #واچ_داگ
🤓 سلام دوستان.
⏮ سیسوگ در مقاله پنجم آموزش میکروکنترلر STM32 ، آموزش داد که چطور چند وقفه خارجی در برنامه داشته باشیم و چطور باید آن ها از یکدیگر تفکیک کنیم.
🔔 در این مقاله در ابتدا، تنظیم لبه بالا رونده و پایین رونده هر پین از پورت را آموزش می دهد و سپس طریقه کار با تایمر واتچ داگ را آموزش می دهد و در نهایت وقفه های خطا را معرفی می کند. با سیسوگ همراه باشید.
〽️ تنظیم لبه بالا رونده و پایین رونده هر پین
خوب حالا که یاد گرفتیم چطور می توانیم از طریق توابع کتابخانه hal لبه وقفه خارجی خود را تغییر بدهیم، بهتر است یک راه حل مناسب و ساده تر برای اینکار پیدا کنیم آن هم راه حل استفاده از کار مستقیم با رجیسترها است. برای این منظور فقط لازم است با دو رجیستر ساده با نام های EXTI->RTSR که به انتخاب لبه بالا رونده هر پین از پورت مربوط می شود و رجیستر EXTI->FTSR که به انتخاب لبه پایین رونده هر پین از پورت مربوط می شود، کار کنیم.
🐶 تایمر واتچ داگ
در این قسمت طریقه کار با تایمر واتچ داگ را خواهیم آموخت، طبق معمول نرم افزار cubemx را باز می کنیم و بعد از تنظیم بخش کلاک میکرو و پروگرامر و دیگر تنظیمات مورد نیاز را انجام می دهیم.
❌ وقفه خطا
در میکروکنترلر STM32 ما چهار وقفه خطا متفاوت داریم. که در برگه stm32f1xx_it.c می توانید روتین های وقفه مربوطه را ببینید.
ادامه مطلب
📣 عضویت در کانال تلگرام سیسوگ
👈#سیسوگ #سیسوگی_ها #ARM #STM #آموزش #وقفه_خارجی #interrupt #STM32 #watch_dog #وقفه_خطا #تایمر_واچ_داگ #واچ_داگ
🤓 سلام دوستان.
⏮ سیسوگ در مقاله پنجم آموزش میکروکنترلر STM32 ، آموزش داد که چطور چند وقفه خارجی در برنامه داشته باشیم و چطور باید آن ها از یکدیگر تفکیک کنیم.
🔔 در این مقاله در ابتدا، تنظیم لبه بالا رونده و پایین رونده هر پین از پورت را آموزش می دهد و سپس طریقه کار با تایمر واتچ داگ را آموزش می دهد و در نهایت وقفه های خطا را معرفی می کند. با سیسوگ همراه باشید.
〽️ تنظیم لبه بالا رونده و پایین رونده هر پین
خوب حالا که یاد گرفتیم چطور می توانیم از طریق توابع کتابخانه hal لبه وقفه خارجی خود را تغییر بدهیم، بهتر است یک راه حل مناسب و ساده تر برای اینکار پیدا کنیم آن هم راه حل استفاده از کار مستقیم با رجیسترها است. برای این منظور فقط لازم است با دو رجیستر ساده با نام های EXTI->RTSR که به انتخاب لبه بالا رونده هر پین از پورت مربوط می شود و رجیستر EXTI->FTSR که به انتخاب لبه پایین رونده هر پین از پورت مربوط می شود، کار کنیم.
🐶 تایمر واتچ داگ
در این قسمت طریقه کار با تایمر واتچ داگ را خواهیم آموخت، طبق معمول نرم افزار cubemx را باز می کنیم و بعد از تنظیم بخش کلاک میکرو و پروگرامر و دیگر تنظیمات مورد نیاز را انجام می دهیم.
❌ وقفه خطا
در میکروکنترلر STM32 ما چهار وقفه خطا متفاوت داریم. که در برگه stm32f1xx_it.c می توانید روتین های وقفه مربوطه را ببینید.
ادامه مطلب
📣 عضویت در کانال تلگرام سیسوگ
آموزش gpio در stm32f0 با cubemx
https://letanphuc.net/2015/02/stm32f0-tutorial-gpio-blinking-led-cubemx-keil-source-insight/
🔰 @c_micro
https://letanphuc.net/2015/02/stm32f0-tutorial-gpio-blinking-led-cubemx-keil-source-insight/
🔰 @c_micro
LTP's archive
STM32F0 Tutorial 2 (GPIO): Blinking LED with CubeMX
In the first tutorial, I have shown some software that you needed to install to play with STM32F0. This STM32F0 tutorial will straightforwardly show how to create a new blinking LED project for STM32F0 Discovery kit with STM32CubeMX and then, generate Keil…
Media is too big
VIEW IN TELEGRAM
شبیه سازی یک دیمر تک فاز آنالوگ در محیط نرم افزار پروتیوس
با تغییر مقدار پتانسیومتر شدت نور لامپ تغییر می کند. به ولتاژی که ولت متر دو سر لامپ نشان میدهد دقت کنید!
⚡️الکترونیک قدرت کاربردی⚡
@C_MICRO
با تغییر مقدار پتانسیومتر شدت نور لامپ تغییر می کند. به ولتاژی که ولت متر دو سر لامپ نشان میدهد دقت کنید!
⚡️الکترونیک قدرت کاربردی⚡
@C_MICRO
آموزش تایمرکانتر و pwm در stm32f0
https://letanphuc.net/2015/06/stm32f0-timer-tutorial-and-counter-tutorial/
🆔 @C_MICRO
https://letanphuc.net/2015/06/stm32f0-timer-tutorial-and-counter-tutorial/
🆔 @C_MICRO
LTP's archive
STM32F0 Tutorial 4: Timer and Counter
In this post, we will explore the Timer and Counter of STM32F0 using CubeMX. In this STM32F0 timer tutorial, I will try to cover as many functions of the STM32F0’s Timer as possible because this peripheral may have the greatest features and functions among…
مانیتورینگ متغیرها در stm32 با stm studio
https://letanphuc.net/2015/04/stm-studio-variables-monitoring-and-visualization-tool-for-stm32/
🆔 @C_micro
https://letanphuc.net/2015/04/stm-studio-variables-monitoring-and-visualization-tool-for-stm32/
🆔 @C_micro
LTP's archive
STM Studio: Variables monitoring and visualization tool for STM32
In the previous tutorials, I have shown how to use the simple GPIO and external interrupt of the STM32. Since these peripherals are connected with external pins, we can visually observe how it works through some LEDs of the Discovery kit. Therefore, it is…
❇️ مثال های کاربردی برای printf
#include <stdio.h>
int main()
{
printf ("Characters: %c %c \n", 'a', 65);
printf ("Decimals: %d %ld\n", 1977, 650000L);
printf ("Preceding with blanks: %10d \n", 1977);
printf ("Preceding with zeros: %010d \n", 1977);
printf ("Some different radices: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
printf ("Width trick: %*d \n", 5, 10);
printf ("%s \n", "A string");
return 0;
}
OUTPUT:
Characters: a A
Decimals: 1977 650000
Preceding with blanks: 1977
Preceding with zeros: 0000001977
Some different radices: 100 64 144 0x64 0144
floats: 3.14 +3e+000 3.141600E+000
Width trick: 10
A string
🔰 @c_micro
#include <stdio.h>
int main()
{
printf ("Characters: %c %c \n", 'a', 65);
printf ("Decimals: %d %ld\n", 1977, 650000L);
printf ("Preceding with blanks: %10d \n", 1977);
printf ("Preceding with zeros: %010d \n", 1977);
printf ("Some different radices: %d %x %o %#x %#o \n", 100, 100, 100, 100, 100);
printf ("floats: %4.2f %+.0e %E \n", 3.1416, 3.1416, 3.1416);
printf ("Width trick: %*d \n", 5, 10);
printf ("%s \n", "A string");
return 0;
}
OUTPUT:
Characters: a A
Decimals: 1977 650000
Preceding with blanks: 1977
Preceding with zeros: 0000001977
Some different radices: 100 64 144 0x64 0144
floats: 3.14 +3e+000 3.141600E+000
Width trick: 10
A string
🔰 @c_micro