查看: 2371|回复: 1

[求助] 用KSDK1.2配置KL26Z串口的问题

[复制链接]

该用户从未签到

19

主题

401

帖子

0

金牌会员

Rank: 6Rank: 6

积分
1114
最后登录
2017-8-16
发表于 2015-8-28 12:57:29 | 显示全部楼层 |阅读模式
本帖最后由 673402618 于 2015-8-28 13:04 编辑

复制代码
前面串口配置的部分是自己的, 后面的是从KSDK的例程中复制的一段代码。
用YL-KL26Z自带的串口发现或者外接PL2303都接收不到数据,debug的时候发现有时会卡在 UART_DRV_Init, 有时会卡在UART_DRV_SendData, 我在语句后面放一个断点, 运行很长时间也到不了, 最后自己停下来,也没有定位到程序停止的地方。 debug的设置应该是没问题的, 昨天刚刚设置好。请问是哪里的问题?
  1. const uint8_t buffStart[]   = "\n\r++++++++++++++++ UART Send/Receive Non Blocking Example +++++++++++++++++\n\r";
  2. const uint8_t bufferData1[] = "\n\rType characters from keyboard, the board will receive and then echo them to terminal screen\n\r";
  3. int main()
  4. {

  5.         

  6.     unsigned char i,j;
  7.     int cnt = 0;
  8.     uint8_t rxChar, txChar;   
  9.     uint32_t byteCountBuff = 0;

  10.     uart_user_config_t uartConfig;
  11.     uart_state_t uartState;
  12.    
  13.           CLOCK_SYS_EnablePortClock(PORTA_IDX);
  14.     CLOCK_SYS_EnableUartClock(UART0_IDX);

  15.         
  16.         

  17.     PORT_HAL_SetMuxMode(PORTA,1u,kPortMuxAlt2);     
  18.     PORT_HAL_SetMuxMode(PORTA,2u,kPortMuxAlt2);
  19.                
  20.                 UART_DRV_Deinit(UART0_IDX);
  21.    
  22.     uartConfig.baudRate = 9600;
  23.     uartConfig.bitCountPerChar = kUart8BitsPerChar;
  24.     uartConfig.parityMode = kUartParityDisabled;
  25.     uartConfig.stopBitCount = kUartOneStopBit;

  26.     UART_DRV_Init(UART0_IDX, &uartState, &uartConfig);


  27.         // Inform to start non blocking example
  28.     byteCountBuff = sizeof(buffStart);
  29.     UART_DRV_SendData(UART0_IDX, buffStart, byteCountBuff);

  30.     // Wait until transmission is finished
  31.     while (kStatus_UART_TxBusy == UART_DRV_GetTransmitStatus(UART0_IDX, NULL)){}

  32.     // Inform user of what to do
  33.     byteCountBuff = sizeof(bufferData1);
  34.     UART_DRV_SendData(UART0_IDX, bufferData1, byteCountBuff);

  35.     // Wait until transmission is finished
  36.     while (kStatus_UART_TxBusy == UART_DRV_GetTransmitStatus(UART0_IDX, NULL)){}


  37.     while(true)
  38.     {
  39.         // Call received API
  40.         UART_DRV_ReceiveData(UART0_IDX, &rxChar, 1u);

  41.         // Wait until we receive a character
  42.         while (kStatus_UART_RxBusy == UART_DRV_GetReceiveStatus(UART0_IDX, NULL)){}

  43.         // Echo received character
  44.         txChar = rxChar;
  45.         UART_DRV_SendData(UART0_IDX, &txChar, 1u);
  46.     }
复制代码




我知道答案 目前已有1人回答

评分

参与人数 1NXP金币 +3 收起 理由
小七 + 3

查看全部评分

回复

使用道具 举报

该用户从未签到

145

主题

4926

帖子

0

金牌会员

Rank: 6Rank: 6

积分
9267
最后登录
1970-1-1
发表于 2015-8-28 14:50:30 | 显示全部楼层
楼主你好!
我建议你用KDS结合PE+KSDK1.2.0中的UART模块生成一个代码,然后调试成功后,你慢慢对比你修改的代码。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

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

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

GMT+8, 2025-7-28 11:49 , Processed in 0.087852 second(s), 23 queries , MemCache On.

Powered by Discuz! X3.4

Copyright © 2001-2024, Tencent Cloud.

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