| 
 
| 目前应用M0518进行一个多串口数据采集装置的产品设计, 样机制作成功后, 现在做整体测试, 发现一个问题.产品中,有与GSM手机模块通信, 其串口电平是2.8V, 单片机是采用 3.3v供电 .目前的情况是, GSM模块发过来的信息,总有个别会存在误码, 疑似串口的电平不一致导致.  想请教有没有什么简单的方法,来实现电平的兼容.按照Datasheet所示, 2.8v 应该在3.3v的范围之内. 当通过下列语句对MFP等设置后,是否还有必要对串口所在的引脚的GPIO模式进行设置, 希望大家指导.
 
 复制代码    //If the defines do not exist in your project, please refer to the related sys.h in the sys_h folder appended to the tool package.
    SYS->ALT_MFP = 0x00000000;
    SYS->ALT_MFP2 = 0x00000000;
    SYS->ALT_MFP3 = 0x00000000;
    SYS->ALT_MFP4 = SYS_ALT_MFP4_PA3_UART3_RXD  | SYS_ALT_MFP4_PA2_UART3_TXD | 
                    SYS_ALT_MFP4_PA1_UART5_RXD  | SYS_ALT_MFP4_PA0_UART5_TXD;
    SYS->GPA_MFP =  SYS_GPA_MFP_PA3_UART3_RXD   | SYS_GPA_MFP_PA2_UART3_TXD | 
                    SYS_GPA_MFP_PA1_UART5_RXD   | SYS_GPA_MFP_PA0_UART5_TXD;
    SYS->GPB_MFP =  SYS_GPB_MFP_PB5_UART1_TXD   | SYS_GPB_MFP_PB4_UART1_RXD | 
                    SYS_GPB_MFP_PB1_UART0_TXD   | SYS_GPB_MFP_PB0_UART0_RXD;
    SYS->GPC_MFP = SYS_GPC_MFP_PC7_UART4_RXD    | SYS_GPC_MFP_PC6_UART4_TXD;
    SYS->GPD_MFP = SYS_GPD_MFP_PD15_UART2_TXD   | SYS_GPD_MFP_PD14_UART2_RXD;
    SYS->GPF_MFP = SYS_GPF_MFP_PF7_ICE_DAT      | SYS_GPF_MFP_PF6_ICE_CLK;
 
以上是nuvoton pinconfig工具产生的代码 ,使用感觉不错.  是否还不需要对串口所在引脚做GPIO设定呢.
 
 
 
 复制代码    /* PB口上串口0: txd rxd  GPIO模式处理 */
    GPIO_SetMode(PB,BIT,GPIO_PMD_OUTPUT);
    
    GPIO_SetMode(PB,BIT0,GPIO_PMD_QUASI);
 
 
 | 
 |