国产精品久久久aaaa,日日干夜夜操天天插,亚洲乱熟女香蕉一区二区三区少妇,99精品国产高清一区二区三区,国产成人精品一区二区色戒,久久久国产精品成人免费,亚洲精品毛片久久久久,99久久婷婷国产综合精品电影,国产一区二区三区任你鲁

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

UART在5.2.0版本E2S中的重定向

瑞薩嵌入式小百科 ? 來源:瑞薩嵌入式小百科 ? 2025-10-31 15:28 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

18.8

UART在5.2.0版本E2S中的重定向

18.8.1

重定向失效原因

隨著FSP庫版本更新到5.2.0,在開發過程中就會發現4.0.0版本的串口重定義并不適用于最新版本。繼續使用原來的重定向代碼時,編譯器就會報錯。根據報錯的信息發現,缺少了幾個函數的定義,這里補全定義即可。

3b464296-b3b4-11f0-8c8f-92fbcf53809c.png

圖19-20 串口重定義編譯器報錯

18.8.2

重定向代碼

Uart重定向函數函數的內容修改成如下所示。

列表11:代碼清單19-10:Uart重定向函數

左右滑動查看完整內容

#ifdefined __GNUC__ && !defined __clang__
int_write(intfd,char*pBuffer,intsize);//防止編譯警告
int_read(intfd,char*pBuffer,intsize);
/* 重定向 printf 輸出 */
int_write(intfd,char*pBuffer,intsize)
{
(void) fd;
R_SCI_UART_Write(&g_uart0_ctrl, (uint8_t*) pBuffer, (uint32_t) size);
while(uart_send_complete_flag ==false)
; 
uart_send_complete_flag =false;
returnsize;
}
/* 重定向 scanf 函數 */
int_read(intfd,char*pBuffer,intsize)
{
(void) fd;
R_SCI_UART_Read(&g_uart0_ctrl, (uint8_t*) pBuffer, (uint32_t) size);
while(uart_receive_complete_flag ==false)
;
uart_receive_complete_flag =false;
/* 回顯 */
R_SCI_UART_Write(&g_uart0_ctrl, (uint8_t*) pBuffer, (uint32_t) size);
returnsize;
}
#else
intfputc(intch, FILE *f)
{
(void)f;
R_SCI_UART_Write(&g_uart0_ctrl, (uint8_t*)&ch,1);
while(uart_send_complete_flag ==false);
uart_send_complete_flag =false;
returnch;
}
#endif

Uart重定向頭文件修改如下所示。

列表12:代碼清單19-11:Uart重定向頭文件

左右滑動查看完整內容

#ifndef__BSP_DEBUG_UART_H
#define__BSP_DEBUG_UART_H
#include"hal_data.h"
#include"stdio.h"
#include
#include
#include
voidDebug_UART0_Init(void);
#endif

補全缺失函數如下所示。

列表13:代碼清單19-12:補全缺失函數

左右滑動查看完整內容

/*函數聲明防止編譯器警告*/
int_isatty(intfd);
int_close(intfd);
int_lseek(intfd,intptr,intdir);
int_fstat(intfd, structstat*st);
__attribute__((weak))int_isatty(intfd)
{
if(fd>= STDIN_FILENO && fd<= STDERR_FILENO)
?return1;
? errno = EBADF;
return0;
?}
?__attribute__((weak))?int?_close(int?fd)
?{
if?(fd >= STDIN_FILENO && fd <= STDERR_FILENO)
return0;
?errno = EBADF;
return-1;
?}
?__attribute__((weak))?int?_lseek(int?fd,?int?ptr,?int?dir)
?{
?(void) fd;
?(void) ptr;
?(void) dir;
?errno = EBADF;
return-1;
?}
?__attribute__((weak))?int?_fstat(int?fd, struct stat *st)
?{
if?(fd >= STDIN_FILENO && fd <= STDERR_FILENO)
?{
?st->st_mode = S_IFCHR;
return0;
}
errno = EBADF;
return0;
}

18.8.3

下載驗證

保證開發板相關硬件連接正確,用Type-CUSB線連接開發板“USBTOUART”接口電腦。本次實驗需要使用到串口調試助手,配置好串口參數并打開串口后,在調試助手的發送區域輸入任意字符并點擊發送,即可在接收區看見相同字符,如圖19_17。

3bad5954-b3b4-11f0-8c8f-92fbcf53809c.png

圖19-21 實驗1下載驗證

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 串口
    +關注

    關注

    15

    文章

    1608

    瀏覽量

    82060
  • uart
    +關注

    關注

    22

    文章

    1305

    瀏覽量

    106187
  • 函數
    +關注

    關注

    3

    文章

    4409

    瀏覽量

    66983
  • 編譯器
    +關注

    關注

    1

    文章

    1670

    瀏覽量

    51138

原文標題:UART在5.2.0版本E2S中的重定向——瑞薩RA系列FSP庫開發實戰指南(50)

文章出處:【微信號:瑞薩嵌入式小百科,微信公眾號:瑞薩嵌入式小百科】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評論

    相關推薦
    熱點推薦

    STM8S如何在STVD環境下重定向printf函數實現UART簡化輸出?

    printf(),網上IAR環境的重定向調通了,求STVD環境下的code。 3. 用STM8的官方例程UART1_PrintfSTVD環境下編譯OK,但是debug時候報錯下載不了程序 4. 針對3
    發表于 04-30 08:29

    芯海通用 MCU應用筆記 : IAR 及 MDK 開發環境下使用 printf 函數重定向移植差異指南

    UART 口輸出打印信息。 IAR9.x版本下,IAR 官方已經不再支持 fputc 接口的重定向,此時若移植原 Keil 下代碼,則無法
    發表于 05-16 11:56

    【RA-Eco-RA4E2-64PIN-V1.0開發板試用】02、UART串口通信

    USB轉串口,連接到P109和P110 IO口。 USB轉串口模塊板子的左下角區域 2 軟件部分 2.1 新建工程 將先前創建的工程模板文件夾復制一份,并將文件夾重命名為02_UART
    發表于 12-14 11:44

    【RA4E2開發板評測】FSP5.2之后的串口重定向問題解決方法

    【緣由】 我導入RA4E2UART工程時遇到編譯報錯,提示如下: 原因是隨著FSP庫版本更新到5.2.0
    發表于 08-29 07:02

    stm32系列單片機之printf重定向

    , 一般用于向標準輸出設備按規定格式輸出信息。但是單片機開發,一般情況下并不存在標準輸出設備,因此我們需要將printf的輸出信息重定向,也就是輸出到其他輸出設備中去。stm32
    發表于 01-19 10:59

    請問S3C2440為什么重定向時要注釋掉u-boot自帶的重定向代碼呢?

    Flash的數據,那為什么重定向時要注釋掉u-boot自帶的重定向代碼呢?自帶u-boot代碼:copy_loop:ldmiar0!, {r3-r10} /* copy from source
    發表于 09-16 10:29

    如何將輸出重定向到一個不同的UART

    a)當使用和聲時,我可以將Prtuf直接指向任意的UART,或者總是指向UART2?如果是,我如何將輸出重定向到一個不同的UART?B)和聲控制臺,可以到任何
    發表于 05-06 13:59

    實現printf函數的重定向

    目錄重定向函數屬性設置重定向函數配置好串口之后需要在相關文件添加以下函數以實現printf函數的重定向//注意添加頭文件#include
    發表于 08-24 07:09

    使用printf()函數時默認UART0輸出,請教如何重定向printf()到UART1?

    芯片:N76E003; 編譯環境:keil5 使用printf()函數時默認UART0輸出,請教如何重定向printf()到UART1?
    發表于 06-25 07:12

    STM32 hal_printf重定向操作

    STM32 hal_printf重定向操作只需要在uart.c文件添加如下代碼, #include "stdio.h"   extern UART
    發表于 12-03 13:36 ?4次下載
    STM32 hal_printf<b class='flag-5'>重定向</b>操作

    Keil下使用STlink重定向printf的配置

    Keil下使用STlink重定向printf的配置1. printf 重定向Keil默認下使用Micro LIB庫,該庫調用 fputs 實現 printf,所以需要重新定義fputs函數,以重定向
    發表于 12-27 18:43 ?18次下載
    Keil下使用STlink<b class='flag-5'>重定向</b>printf的配置

    Linux I/O重定向詳解

    Linux I/O重定向可以定義為,更改從命令讀取輸入到命令發送輸出的方式。你可以重定向命令的輸入和輸出。對于重定向符號,可以是 或者 | 。
    的頭像 發表于 05-04 14:34 ?1358次閱讀

    bash如何進行各種文件重定向呢?

    本文會用以下測試程序,來演示bash,如何進行各種文件重定向
    的頭像 發表于 08-25 09:31 ?1902次閱讀
    <b class='flag-5'>在</b>bash<b class='flag-5'>中</b>如何進行各種文件<b class='flag-5'>重定向</b>呢?

    如何實現Printf()接口重定向UART

    ;。所謂的重定向,就是重新定義Printf()接口函數里調用的與輸出設備相關的函數,eg:使用Printf()接口將MCU的信息,通過串口或者Ethernet輸出到終端上位機。
    的頭像 發表于 10-01 10:13 ?2176次閱讀
    如何實現Printf()接口<b class='flag-5'>重定向</b>到<b class='flag-5'>UART</b>

    2分鐘搞懂輸出重定向

    視頻最后我們通過重定向把標準輸出寫到了文件,但是錯誤輸出還是留在了屏幕上。
    的頭像 發表于 01-15 16:41 ?1133次閱讀