سطحي و كار راه انداز
دقيق و حرفه اي
سلام به دوستان من یه مثال برای ارتباط can برای میکرو stm32 دارم که هر کاری میکنم کامپایل نمیشه قبلا که ورژن کیل م 4.5 بود راحت کامپایل میشد الان که ورژنو کردم 4.7 دیگه کامپایل نمیشه و اصلا مثل اینکه لایبرری هارو توش نداره چطور میتونم مشکلو حل کنم هم ارور رو میزارم هم مثال رو مثال رو از سایت کیل گرفتم
[PHP]Rebuild target 'Simulator'
assembling STM32F10x.s...
compiling STM32_Init.c...
C:\KeilUV4.7\ARM\Inc\ST\STM32F10x\stm32f10x_map.h( 28): error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory
compiling LCD_4bit.c...
C:\KeilUV4.7\ARM\Inc\ST\STM32F10x\stm32f10x_map.h( 28): error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory
compiling CAN.c...
C:\KeilUV4.7\ARM\Inc\ST\STM32F10x\stm32f10x_map.h( 28): error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory
compiling CanDemo.c...
C:\KeilUV4.7\ARM\Inc\ST\STM32F10x\stm32f10x_map.h( 28): error: #5: cannot open source input file "stm32f10x_conf.h": No such file or directory
Target not created[/PHP]
سلام مهندس
این مثالی که گذاشتی مربوط به سال 2007 -2005 میشه و یه خورده قدیمیه.
به نظرم Keil 5 دانلود کن. هم بروزتره و ... خودت دانلود کنی متوجه میشی
_____________________________________
_____________________________________
سلام آقاي بخشي عزيز
ببخشيد دير ميجوابم دارم با ارتش سروكله ميزنم
من در مورد اوور كلاك مثال دارم لينك ميدم حالشو ببر
در مورد اون عدد 5 هم چون دستور For به اندازه 5 سيكل تاخير داره اين 5 تا رو بايد توي اون فرمول لحاظ كنيم
دركش هم راحته اگر تاخير For به اندازه 1 سيكل بود اونوقت t كه ميزان زمان تاخير هست مثلا 2 ثانيه باشه
هر 72ميليون سيكل معادل يك ثانيه تاخير ميشد كه اگر در t=2 ضرب بشه دو ثانيه تاخير ايجاد ميكنه
حالا چون دستور For خودش 5 سيكل تاخير داره ما بايد تعداد تكرار حلقه For رو 5 برابر كم كنيم همين
RCC_STM32_CMSIS
RCC_STM32_Reg
در مورد شبيه سازي هم بگم كه نرم افزاري من با ميكرويي جز RBT6 جواب نگرفتم
سخت افزاري تست كني جواب ميده يا ميكرو رو توي پروژه به RBT تغيير بده
موفق باشي
*** اللّهم عجّل لولیک الفرج ***
سلام دوستان
من ال سی دی 4.3 اینچ با درایور از فروشگاه سایت گرفتم، الان میخوام با مثال توی سی دی راه اندازی کنم، ولی متاسفانه کامنتای توی برنامه نامفهومه.به این صورت: /* åäöãêý¾ýio ᬽóµ½gpiob
راهی هست که کامنتا قابل خوندن بشه؟
پین های برد درایور رو چجوری اتصال بدم به میکرو؟
آقا کامنتا بخاطر اینکه چینی نوشته شده اینجوریه، راه خوندنشم اینه که زبان سیستمو به چینی تغییر بدی، اونموقع دیگه اینجوری نیست و چینی مشخص میشه، بعدش کپی پیست توی گوگل ترنسلیت و...
سلام
بابت آموزش هایی ک گذاشتید ممنون
لطفا در مورد برنامه ای ک نوشتم اگر میشه کمک کنید:
من برای یوزارت کد زیر رو نوشتم تا با مبدل usb به نرم افزار آردینو وصل کنم و ارتباط سریال داشته باشم و برنامه به این شکله ک هر چی از آردینو میفرستم ب میکرو ، همان رو دوباره برگرداند و اگر کاراکتر ' , ' فرستادم ، سه بار این کاراکتر رو برگرداند ولی وقتی ب صورت عملی تست میکنم هیچی نمیبینم ، میشه راهنمایی کنید مشکل از کجاست؟
ممنون
کد:#include "stm32f10x.h" #include <stdio.h> void USART_Configuration(void); int main(void) { USART_Configuration(); while (1) { int i=0; char b; while (USART_GetFlagStatus(UART4, USART_FLAG_RXNE) == RESET) {} b=USART_ReceiveData(UART4); if(b==',') { for(i=0;i<2;i++) { while (USART_GetFlagStatus(UART4, USART_FLAG_TC) == RESET) {} USART_SendData(UART4, b); } } else { while (USART_GetFlagStatus(UART4, USART_FLAG_TC) == RESET) {} USART_SendData(UART4, b); } void USART_Configuration(void) { USART_InitTypeDef USART_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4,ENABLE); USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Rx | USART_Mode_Tx; USART_Init(UART4, &USART_InitStructure); USART_Cmd(UART4, ENABLE); }
سلام
خارج از این برنامه مطمئنید که ارتباط سریالتون بدرستی برقرار میشه ... اصلا کاراکتری میفرسته !!!؟
*** اللّهم عجّل لولیک الفرج ***
مبدلم سالمه و نرم افزارم هم همینطور ، tx و rx رو به هم وصل میکنم و تست میکنم
بورد میکرویی ک دارم هم از کسی گرفتم ک قبلا باهاش کار شده و تقریبا تمام ماژول هاش راه اندازی شده
ب نظرتون برنامه ام مشکل نداره؟
من ی برنامه دیگه هم نوشته بودم ،ک تو حلقه یه کاراکتر رو مرتبا بفرسته ولی اونم ج نداد
ی سوال دیگه اینکه تقریبا من تا صفحه 22 این مطالب رو می خوندم ، کسی توضیح نداده بود ک بر چه مبانی هدر ها رو ب پروژه ای ک تازه میسازیم اضافه کنیم؟
ممنون
_____________________________________
_____________________________________
سلام
شماره میکرو رو ننوشتید ولی با توجه به استفاده از UART4 ، احتمالا شما از سری High Density یا بالاتر استفاده میکنید . و اگر روتین کانفیگ شما فقط همین که نوشتید باشه کار نمیکنه چون شما gpio رو برای ارتباط سریال کانفیک نکردید . برای UART4 فکر کنم C10 و C11 متناظر با Tx و Rx باشه .پس تابع کانفیگ رو اینطوری بنویسید :
کد:void USART_Configuration(void) { USART_InitTypeDef USART_InitStructure; GPIO_InitTypeDef GPIO_InitStructure; RCC_APB1PeriphClockCmd(RCC_APB1Periph_UART4, ENABLE); RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOC, ENABLE); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_10; // Tx GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_Init(GPIOC, &GPIO_InitStructure); GPIO_InitStructure.GPIO_Pin = GPIO_Pin_11; // Rx GPIO_InitStructure.GPIO_Mode = GPIO_Mode_IN_FLOATING; GPIO_Init(GPIOC, &GPIO_InitStructure); USART_InitStructure.USART_BaudRate = 115200; USART_InitStructure.USART_WordLength = USART_WordLength_8b; USART_InitStructure.USART_StopBits = USART_StopBits_1; USART_InitStructure.USART_Parity = USART_Parity_No; USART_InitStructure.USART_HardwareFlowControl = USART_HardwareFlowControl_None; USART_InitStructure.USART_Mode = USART_Mode_Tx | USART_Mode_Rx; USART_Init(UART4, &USART_InitStructure); USART_Cmd(UART4, ENABLE); }
سلام،
یه مشکل عجیبی پیدا کردم!
یه سری پروژه از یه بورد آموزشی داشتم (یا حتی پروژه های مثال خود کیل) وقتی میخوام کمپایل کنم این اخطار رو میده:
فقط پروژه هایی که با CMSIS انجام دادم رو میتونم کمپایل کنم!کد:test.c(1): error: #5: cannot open source input file "stm32f10x_lib.h": No such file or directory #include <stm32f10x_lib.h>
کسی میدونم مشکل چیه؟
با تشکر
. . . پــــــــــشـــــــــــــتــــــــــــکـــــــــــــــار . . .
بریم STM32
متشکر از پاسختون
این کار رو کرده بودم ولی تعداد خطاها بیشترم شد!
ولی باز خطا میده به توابع و کدهای موجود در کتابخونهکد:Rebuild target 'Target 1' assembling STM32F10x.s... compiling test.c... compiling delay.c... compiling sys.c... ..\SYSTEM\sys\sys.c(20): warning: #223-D: function "assert_param" declared implicitly assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); ..\SYSTEM\sys\sys.c(20): warning: #223-D: function "IS_NVIC_VECTTAB" declared implicitly assert_param(IS_NVIC_VECTTAB(NVIC_VectTab)); ..\SYSTEM\sys\sys.c(21): warning: #223-D: function "IS_NVIC_OFFSET" declared implicitly assert_param(IS_NVIC_OFFSET(Offset)); ..\SYSTEM\sys\sys.c(68): error: #136: struct "<unnamed>" has no field "IPR" NVIC->IPR[IPRADDR]|=temp<<IPROFFSET;//ÉèÖÃÏìÓ¦ÓÅÏȼ¶ºÍÇÀ¶ÏÓÅÏȼ¶ ..\SYSTEM\sys\sys.c(119): error: #20: identifier "NVIC_VectTab_FLASH" is undefined MY_NVIC_SetVectorTable(NVIC_VectTab_FLASH, 0x0); ..\SYSTEM\sys\sys.c: 3 warnings, 2 errors compiling usart.c... compiling led.c... compiling key.c... compiling wdg.c... ..\HARDWARE\WDG\wdg.c(48): error: #20: identifier "WWDG_IRQChannel" is undefined MY_NVIC_Init(2,3,WWDG_IRQChannel,2);//ÇÀÕ¼2£¬×ÓÓÅÏȼ¶3£¬×é2 ..\HARDWARE\WDG\wdg.c: 0 warnings, 1 error compiling timer.c... ..\HARDWARE\TIMER\timer.c(33): error: #20: identifier "TIM3_IRQChannel" is undefined MY_NVIC_Init(1,3,TIM3_IRQChannel,2);//ÇÀÕ¼1£¬×ÓÓÅÏȼ¶3£¬×é2 ..\HARDWARE\TIMER\timer.c: 0 warnings, 1 error compiling ILI93xx.c... compiling rtc.c... ..\HARDWARE\RTC\rtc.c(57): error: #20: identifier "RTC_IRQChannel" is undefined MY_NVIC_Init(0,0,RTC_IRQChannel,2);//RTC,G2,P2,S2.ÓÅÏȼ¶×îµÍ ..\HARDWARE\RTC\rtc.c: 0 warnings, 1 error compiling wkup.c... ..\HARDWARE\WKUP\wkup.c(69): error: #20: identifier "EXTI0_IRQChannel" is undefined MY_NVIC_Init(2,2,EXTI0_IRQChannel,2);//ÇÀÕ¼2£¬×ÓÓÅÏȼ¶2£¬×é2 ..\HARDWARE\WKUP\wkup.c: 0 warnings, 1 error compiling adc.c... ".\TEST.axf" - 6 Error(s), 3 Warning(s). Target not created
. . . پــــــــــشـــــــــــــتــــــــــــکـــــــــــــــار . . .
بریم STM32
لایبرری های مربوط به سخت افزارهایی که راه اندازی شده (مثل KEY و LED و ... ) همراشه. (فایل های بورد آموزشیه!) و حتی سمپل های خود کیل هم کمپایل نمیشن!
نسخه کیلمم:
Toolchain: MDK-ARM Professional Version: 4.73.0.0
آره من کلاً Replace کردم توی کل پروژه!
اینم یکی از پروژه ها:
http://cld.persiangig.com/download/LUjfHRIv2v/5.rar/dl
. . . پــــــــــشـــــــــــــتــــــــــــکـــــــــــــــار . . .
بریم STM32
من این برنامه رو نگاه کردم . با روش رجیستری نوشته شده و خیلی درهم بر هم و غیر استاندارد ! توصیه میکنم از اینگونه مثالها مخصوصا برای شروع کار استفاده نکن که وقتت بیهوده هدر میره ..
بهرحال این حالا کامپایل شد ولی چند جا رو دستکاری کردم . لایببری CMSIS رو اضافه کردم چون یه جاهایی هم از اون استفاده کرده .
توصیه میکنم اگه می خوای با رجیسترها کار کنی کافیه از همون cmsis استفاده کنی . به این شکل که بری تو دستورات اون توابع رو نگاه کنی و ببینی به چه رجیسترهایی نوشته شده و چطوری راه افتاده هر قسمت ..
ممنون از لطفتون
من از این کدا استفاده نمیکنم و خودمم با cmsis کار می کنم
ولی اینو فقط محض این گذاشتم که بگم قبلاً کمپایل میشد همین پروژه ها ولی الان خطا میده!
حالا اینو که درست کردید کجاهاشو تغییر دادین؟
و مشکلم اینه که اصن جز برنامه های کتابخونه cmsis هیچ برنامه ای کمپایل نمیشه!
حتی مثالهای خود کیل!
با تشکر
. . . پــــــــــشـــــــــــــتــــــــــــکـــــــــــــــار . . .
بریم STM32
تا جایی که یادم میاد لایببری cmsis رو اضافه کردم و فایل conf و همچنین تعریف Medium Density در منوی C,C++ ..
البته نیازی به لایببری نیست اگر کلا با رجیستر نوشته شده باشه . مثلا مثالهای کیل اینطوری هستند و فقط یکی دو فایل همراهشون هست ولی دیدم یکی دو دستور cmsis هم بینشون بود که ارور میداد پس کل لایببری رو همراهش گذاشتم .
در مورد اینکه میگید مثالهای قبلی کار نمیکنه فکر کنم بخاطر نسخه های جدید کیل باشه که با قبلی ها همخوانی نداره . برای اینکه ببینید برای کار با رجیستر نیاز به چه فایلهایی دارید کافیه یک مثال از سایت کیل دانلود کنید ..
سلام
بعد از مدت ها از ساخت برد بلاخره برد را راه اندازی کردم.علت هم دو چیز بود
1-سربازی و وقت و حوصله کم
2-خراب بودن دو جای مهم از pcb که باید این فدک pcb را لعنت کنم.
من قصد داشتم که با بوتلودر شروع کنم که نشد و یه پروگرمر jlink از سایت خریدم (دی وی دی هم نداشت) که بازم کارم نمی کرد کرد و گمان به خرابی هر چی می رفت.من کاملا ناامید شدم و سربازی هم نمیذاشت طرفش بیام
خلاصه بuد از مدت ها اومدم سراغش و معلوم شد که مشکل از via یکی از پین های jtag بوده و مشکل بعدی مربوط به ترک tx پورت comبوده که از روی برد قطع بود و باعث شده بودن به هیچ وجه نتونم روش برنامه بریزم
هر وقت برد رو میبینم یاد فدک pcb می افتم