NOTICE توجه: این یک موضوع قدیمی است که آخرین پست ارسالی آن مربوط به 2443 روز قبل است . لطفا فقط پاسخ ها ، سوالات و درخواست های 100 درصد مرتبط را به آن ارسال کنید و برای درخواست ها و سوالات جدید موضوع جدیدی را ایجاد کنید
نمایش نتایج: از 1 به 4 از 4

موضوع: نحوه کار بار دستور printf در میکروکنتترهایی که چند پورت سریال دارند

  1. #1
    تازه وارد
    تاریخ عضویت
    Jul 2009
    نوشته ها
    3
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    Icon17 نحوه کار بار دستور printf در میکروکنتترهایی که چند پورت سریال دارند

    سلام
    در میکروکنترلر های ST ARM که چند پورت سریال دارند. کدهایی که بصورت زیر نوشته شده، از کدام پورت ارسال می شود؟ (یا چطوری میشه فهمید که از کدام پورت ارسال میشه)
    کد:
    char phoneNO[]="093XXXXXX";
    int main(void)
    {
    
      HAL_Init();
      SystemClock_Config();
      MX_GPIO_Init();
      MX_USART2_UART_Init();
    
        printf("AT");
        HAL_Delay(1000);
        printf("ATD");
        printf(phoneNO);
        HAL_Delay(8000);
        printf("ATH");
      
      while (1)
      {
      }
    ویرایش توسط beshel85 : 10-08-2017 در ساعت 22:26

  2. # ADS
    Circuit advertisement
    تاریخ عضویت
    Always
    نوشته ها
    Many
     

  3. #2

  4. #3
    کاربر علاقه مند
    تاریخ عضویت
    Mar 2014
    نوشته ها
    27
    تشکر
    0
    تشکر شده 17 بار در 8 پست

    پیش فرض

    نقل قول نوشته اصلی توسط beshel85 نمایش پست ها
    سلام
    در میکروکنترلر های ST ARM که چند پورت سریال دارند. کدهایی که بصورت زیر نوشته شده، از کدام پورت ارسال می شود؟ (یا چطوری میشه فهمید که از کدام پورت ارسال میشه)
    کد:
    char phoneNO[]="093XXXXXX";
    int main(void)
    {
    
      HAL_Init();
      SystemClock_Config();
      MX_GPIO_Init();
      MX_USART2_UART_Init();
    
        printf("AT");
        HAL_Delay(1000);
        printf("ATD");
        printf(phoneNO);
        HAL_Delay(8000);
        printf("ATH");
      
      while (1)
      {
      }
    سلام. دنبال فایل stm32f1xx_hal_msp.c داخل فولدر پروژه ات بگرد. داخل فایل، پورت و پین میکرو پورت سریال استفاده شده رو مشخص کرده.

  5. تشکرها از این نوشته :


  6. #4
    تازه وارد
    تاریخ عضویت
    Jul 2009
    نوشته ها
    3
    تشکر
    0
    تشکر شده 0 بار در 0 پست

    Red face

    نه متاسفانه، اینکار انجام نمیشه
    برای اینکار باید retarget یا reroute انجام میدادم
    یعنی وقتی که از دستور printf استفاده می کنم باید برنامه بطور اتوماتیک مسیر ارسال دستورات رو به usart2 منتقل کنه.

    شبیه چنین کاری ، که درست جواب داده
    کد:
    #include "main.h" #include "stm32f1xx_hal.h" UART_HandleTypeDef huart2; void SystemClock_Config(void); void Error_Handler(void); static void MX_GPIO_Init(void); static void MX_USART2_UART_Init(void); #ifdef __GNUC__ #define PUTCHAR_PROTOTYPE int __io_putchar(int ch) #else #define PUTCHAR_PROTOTYPE int fputc(int ch, FILE *f) #endif int main(void) { HAL_Init(); SystemClock_Config(); MX_GPIO_Init(); MX_USART2_UART_Init(); printf("AT\r"); HAL_Delay(4000); printf("AT+CMGF=1\r"); printf("AT+CMGS=0933333333\r"); printf("hellooo\x1A"); while (1) { } } PUTCHAR_PROTOTYPE /**RETARGET PRINTF TO UART2***/ { HAL_UART_Transmit(&huart2, (uint8_t *)&ch, 1, 0xFFFF); return ch; }

موضوعات مشابه

  1. [درخواست] مشکل با پاک کردن پوشه داری فایل با کتابخانه rl-arm و دستور fdelete
    توسط lord electron در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 3
    آخرين نوشته: 16-02-2015, 12:30
  2. دستور printf و usart1
    توسط jonbakhsh در انجمن stm32
    پاسخ: 2
    آخرين نوشته: 10-06-2014, 20:22
  3. "پورت سریال، printf ، retarget" و دیگر هیچ!
    توسط arasbaran در انجمن LPC series (NXP)
    پاسخ: 7
    آخرين نوشته: 04-11-2013, 23:01
  4. هدر خلاصه کننده دستورات پورت
    توسط mehdiit در انجمن میکرو کنترلر های 32 بیتی(arm)
    پاسخ: 6
    آخرين نوشته: 19-12-2010, 15:26
  5. افتتاح سایت جدید
    توسط khosroeng در انجمن پیشنهادات ،انتقاد و نظرات شما در مورد انجمن
    پاسخ: 0
    آخرين نوشته: 24-10-2010, 15:09

مجوز های ارسال و ویرایش

  • شما نمیتوانید موضوع جدیدی ارسال کنید
  • شما امکان ارسال پاسخ را ندارید
  • شما نمیتوانید فایل پیوست کنید.
  • شما نمیتوانید پست های خود را ویرایش کنید
  •