دوستان سلام : نماز و روزه هاتون قبول باشه انشالله و امید وارم شب های قدر مارو از دعای خیرتون محروم نکرده باشید؛ ببخشید منو دوهفته نبودم؛ یک مسافرت برام پیش اومد که نشد دیگه
جلسه پیش ریمپ و سریال رو گفتیم اما در ریمپ یکم دوستان سوال داشتن و همچنین بخشی از سریال موند.
آموزش میکروکنترلر های arm سری stm32f10x جلسه 5
اول سوالات مربوت به ریمپ، بهترین راه برای تشخیص پایه های ریمپ نرم افزار کیوب هست، که اموزش نصب و کار با اون توی همین سایت هست، نوشته دوستم اقای زمانی : آموزش stm32f103 جلسه 2 پین های سخت افزاری
شما هر پری فرالی رو که انتخاب کنید پایه هاش توی کیوب سبز میشه و شما با نگه داشتن کلید کنترل و کلیک روی سبز پایه مشاهده میکنید که یک پایه دیگه ابی میشه در واقع اون پایه پایه ریمپ پری فرالتون هست :
یا برین از صفحه 180 دیتا شیت نگا کنید :
خب فک کنم مشکلی تو ریمپ نباشه؛ اگه بود بگین تا باز بگم.
حالا بریم سراغ سریال و توابع ارسال و دریافت دیتا که موند؛ از تب فانکشن، usart توابع مربوط به usart رو میبنید.
برای ارسال دیتا ازتابع زیر استفاده میکنیم :
1 |
void USART_SendData(USART_TypeDef* USARTx, uint16_t Data) |
و به شکل زیر پرش میکنیم :
1 |
USART_SendData(USART2,'A'); |
یا کد اسکی ارسال میکنیم :
1 |
USART_SendData(USART2,65); |
و برای دریافت اطلاعات هم از تابع زیر استفاده میکنیم :
1 |
uint16_t USART_ReceiveData(USART_TypeDef* USARTx) |
و به شکل زیر پرش میکنیم :
1 |
if((USART_ReceiveData(USART2))=='A') |
اما اگه بخوایم چند کاراکتر رو پشت سر هم اسال و دریافت کنیم از اونجایی که سرعت cpu خیلی بالاست و سرعت سریال کمتره اطلاعات گم میشن. برای رفع این مشکل باید از فلگ استفاده کنیم یعنی وقتی که یک کاراکتر ارسال شد.به ما بگه و ما کاراکتر بعدی رو ارسال کنیم.
1 |
FlagStatus USART_GetFlagStatus(USART_TypeDef* USARTx, uint16_t USART_FLAG) |
فلگ هاش اینان…
* @arg USART_FLAG_CTS: CTS Change flag (not available for UART4 and UART5)
* @arg USART_FLAG_LBD: LIN Break detection flag
* @arg USART_FLAG_TXE: Transmit data register empty flag
* @arg USART_FLAG_TC: Transmission Complete flag
* @arg USART_FLAG_RXNE: Receive data register not empty flag
* @arg USART_FLAG_IDLE: Idle Line detection flag
* @arg USART_FLAG_ORE: OverRun Error flag
* @arg USART_FLAG_NE: Noise Error flag
* @arg USART_FLAG_FE: Framing Error flag
* @arg USART_FLAG_PE: Parity Error flag
فک کنم توضیح جلوش کافیه و نیازی نیست چیزی بگم…
و به صورت زیر پرش میکنیم…
1 |
while(!(USART_GetFlagStatus(USART2,USART_FLAG_TXE))); |
قسمت اول که هیچ قسمت دوم تابع هر فلگی رو که بخوایم داشته باشیم رو مینوسیم..
امید وارم راضی باشین از اموزش هر چند کوتاه؛ عیدتون پیشاپیش مبارک هفته بعدم وسط امتحانامه اگه وقت بکنم adc رو میگم نشدم عذر میخوام پیشاپیش التماس دعا دارم از همگی.
مهمان
نمایش روی ال سی دی 16*2 با توابع هالstmcubmx lcd16*2 plise
مهمان
سلام بسیار عالی
استاد آموزش بعدی رو نمیذارید؟
مهمان
فراتر از عالی ….
فقط کد کامل هم بذارید ممنون میشم
مهمان
سلام خسته نباشید

فقط میتونم بگم عااااااااااااااااااااااااااااااااااااااااااااااااااااااااااالی
اگه ممنکه یکم مباحث پیشرفته تر درس بدین
مثلا اترنت یا I2C…
نویسنده این مطلب
بله حتما اما گاماس گاماس
مهمان
عالی ، امیدوارم معدل این ترمتون بیست بشه
مهمان
سلام عالی بودد