查看: 2646|回复: 3

[已解决] kl17系列MKL17Z128VFM4芯片uart0串口输出是乱码

[复制链接]

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
17
最后登录
2018-5-4
发表于 2018-5-4 16:32:35 | 显示全部楼层 |阅读模式
我是直接使用KSDK中的demo进行设置,gpio控制和OSA_TimeDelay()函数都能正常使用,唯独这个串口的功能我调试了2天了也一直是乱码。
我知道答案 目前已有3人回答
回复

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
17
最后登录
2018-5-4
 楼主| 发表于 2018-5-4 16:47:35 | 显示全部楼层
我是直接用KSDK_Project_Generator_x64软件生成的工程配置如下:
QQ截图20180504164231.png

使用的外部时钟如下:
QQ图片20180504164504.png

串口的波特率、校验位、停止位等等设置的都没问题,但就是显示乱码,我唯一怀疑的问题就是时钟设置不对,但是OSA_TimeDelay()函数运行的很正常啊,难道是串口时钟设置异常么?
回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
17
最后登录
2018-5-4
 楼主| 发表于 2018-5-4 17:28:11 | 显示全部楼层
/*
* This is template for main module created by KSDK Project Generator. Enjoy!
*/

/*
* [File Name]     main.c
* [Platform]      MKL17Z128VFM4
* [Project]       myProject
* [Version]       1.00
* [Author]        liujia
* [Date]          05/02/2018
* [Language]      'C'
* [History]       1.00 - Original Release
*
*/

//-----------------------------------------------------------------------
// Standard C/C++ Includes
//-----------------------------------------------------------------------
#include <stdio.h>
//-----------------------------------------------------------------------
// KSDK Includes
//-----------------------------------------------------------------------
#include "main.h"
#include "board.h"
#include "gpio_pins.h"
#include "fsl_debug_console.h"
#include "fsl_clock_manager.h"
#include "fsl_lpuart_driver.h"
//-----------------------------------------------------------------------
// Application Includes
//-----------------------------------------------------------------------

//-----------------------------------------------------------------------
// Function Prototypes
//-----------------------------------------------------------------------

//-----------------------------------------------------------------------
// Constants
//-----------------------------------------------------------------------
const uint8_t buffStart[]    = "\r\n++++++++++++++++ LPUART Send/Receive Blocking Example +++++++++++++++++\r\n";
const uint8_t bufferData1[]  = "\r\nType characters from keyboard, the board will receive and then echo them to terminal screen\r\n";
//-----------------------------------------------------------------------
// Typedefs
//-----------------------------------------------------------------------

//-----------------------------------------------------------------------
// Global Variables
//-----------------------------------------------------------------------
volatile bool isButtonPress = false;
//-----------------------------------------------------------------------
// Macros
//-----------------------------------------------------------------------

//-----------------------------------------------------------------------
// Main Function
//-----------------------------------------------------------------------

int main(void)
{
    uint8_t rxChar = 0, txChar = 0;
    uint32_t byteCountBuff = 0;

    // Define gpio input pin config structure SW.
    gpio_input_pin_user_config_t inputPin[] = {
        {
            .pinName = GPIO_PINS_OUT_OF_RANGE,
        }
    };

    // Define gpio output pin config structure LED1.
    gpio_output_pin_user_config_t outputPin[] = {
        {
            .pinName              = kGpioLED1,
            .config.outputLogic   = 0,
#if FSL_FEATURE_PORT_HAS_SLEW_RATE
            .config.slewRate      = kPortFastSlewRate,
#endif
#if FSL_FEATURE_PORT_HAS_DRIVE_STRENGTH
            .config.driveStrength = kPortHighDriveStrength,
#endif
        },
        {
            .pinName = GPIO_PINS_OUT_OF_RANGE,
        }
    };

    // Initialize variable lpuartStatePtr of type lpuart_state_t
    lpuart_state_t lpuartStatePtr;

    // Fill in lpuart config data
    lpuart_user_config_t lpuartConfig = {
        .clockSource     = BOARD_LPUART_CLOCK_SOURCE,
        .bitCountPerChar = kLpuart8BitsPerChar,
        .parityMode      = kLpuartParityDisabled,
        .stopBitCount    = kLpuartOneStopBit,
        .baudRate        = BOARD_DEBUG_UART_BAUD
    };

    // Init hardware
    hardware_init();

    // Enable LPTIMER for timeout
    OSA_Init();

    // Initialize the lpuart module with instance number and config structure
    LPUART_DRV_Init(BOARD_DEBUG_UART_INSTANCE, &lpuartStatePtr, &lpuartConfig);

    // Inform to start blocking example
    byteCountBuff = sizeof(buffStart);
    LPUART_DRV_SendDataBlocking(BOARD_DEBUG_UART_INSTANCE, buffStart, byteCountBuff, 1000u);

    // Inform user of what to do
    byteCountBuff = sizeof(bufferData1);
    LPUART_DRV_SendDataBlocking(BOARD_DEBUG_UART_INSTANCE, bufferData1, byteCountBuff, 1000u);

//    // Print a note to terminal.
//    PRINTF("\r\n GPIO PD Driver example\r\n");
//    PRINTF("\r\n Press %s to turn on/off a LED1\r\n",BOARD_SW_NAME);

    // Init LED1, Switch.
    GPIO_DRV_Init(inputPin, outputPin);
    // Turn LED1 on.
    GPIO_DRV_ClearPinOutput(kGpioLED1);

    for (;;)                                                    // Forever loop
    {
//        PRINTF(" %s is pressed \r\n",BOARD_SW_NAME);
        OSA_TimeDelay(5000);
        GPIO_DRV_TogglePinOutput(kGpioLED1);
    }


}
////////////////////////////////////////////////////////////////////////////////
// EOF
////////////////////////////////////////////////////////////////////////////////


QQ截图20180504172737.png

回复 支持 反对

使用道具 举报

该用户从未签到

1

主题

4

帖子

0

新手上路

Rank: 1

积分
17
最后登录
2018-5-4
 楼主| 发表于 2018-5-4 18:55:29 | 显示全部楼层
问题已解决,因为板子的串口输出是232而我一直接的是TTL
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 注册/登录

本版积分规则

关闭

站长推荐上一条 /3 下一条

Archiver|手机版|小黑屋|恩智浦技术社区

GMT+8, 2025-7-20 20:34 , Processed in 0.091409 second(s), 25 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

快速回复 返回顶部 返回列表