1.前言

最近使用NXP Kinetis的 单片机MKE14F512VLL16开发项目

使用的IDE

  • MCUXpresso v11.3.0

使用的SDK软件开发包

  • SDK_2.x_MKE14F512XXX16 ,v2.8.8

有一个应用程序, 必须在两个不同的端口中 使用相同的 LPUART 模块

不同的外围设备连接到每个端口 我不想同时使用它们

2.硬件说明

外设 1(P1) 连接到:

    PTA3 (ALT6)- LPUART0-TXPTA2 (ALT6)- LPUART0-RX

外设 2(P2) 连接到:

PTB0 (ALT2)- LPUART0-RXPTB1 (ALT2)- LPUART0-TX

3.代码编写

在我的应用程序中 先使用以下代码 使用端口 A2 和 A3 初始化 LPUART0 模块

void InitLPUART0(void){PCC->CLKCFG[PCC_LPUART0_INDEX] |= PCC_CLKCFG_PCS(3); //System Oscillator Bus ClockPCC->CLKCFG[PCC_LPUART0_INDEX] |= PCC_CLKCFG_CGC(1); //PCC Configuration - Enable ClockPORTA->PCR[2] |= PORT_PCR_MUX(6); /* LPUART - ALT6 */PORTA->PCR[3] |= PORT_PCR_MUX(6);LPUART0->CTRL &= ~(LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK);LPUART0->BAUD = BAUD_115200; //48M/(26*16)Baud rate for 115200bps
LPUART0->CTRL |= LPUART_CTRL_RIE(1); /* Receiver Interrupt Enable */LPUART0->CTRL |= LPUART_CTRL_TE(1); /* Transmitter enable */LPUART0->CTRL |= LPUART_CTRL_RE(1); /* Receiver Enable
*/NVIC_EnableIRQ(LPUART0_RX_IRQn); }

最初,这是按预期工作的。 系统正在通过端口按预期发送数据。

当我需要使用其他外设时, 我将 LPUART0 转移到另一个端口, 如下所示进行初始化。

LPUART0->CTRL &= ~(LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK); /* Disable Tranceiver */PORTA->PCR[3] |= PORT_PCR_MUX(1); /* LPUART - ALT1 - GPIO */
PORTA->PCR[2] |= PORT_PCR_MUX(1);PORTB->PCR[0] |= PORT_PCR_MUX(2); /* LPUART - ALT2 - UART */
PORTB->PCR[1] |= PORT_PCR_MUX(2);LPUART0->CTRL |= (LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK); /* Enable Tranceiver */

安装配置后, MCU系统应该通过端口 B 将数据发送到外设 2 发现即使传输代码正在运行, LPUART 线路也是空闲的

切换端口后 如果我使用相同的方法切换回端口 A 中的外设 1, 它也不会响应。

如果使用其中一个端口而不切换到另一个, 则系统正在工作

4.解决方案

修改PORTx_PCR寄存器中的MUX设置 相对应的第 8、9 和 10 位

而不是清除它们 更正的方法贴在下面

void SelectCOMPort(COMPORT_TYPE CPort){ /* Directs LPUART0 to the required port and disables others */LPUART0->CTRL &= ~(LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK);  /* Disable Tranceiver */switch (CPort){case PORT_1:PORTB->PCR[0] &= ~(BIT8 | BIT9 | BIT10);    /* LPUART - Disable */PORTB->PCR[1] &= ~(BIT8 | BIT9 | BIT10);PORTA->PCR[3] |= PORT_PCR_MUX(6);           /* LPUART - ALT6 - to UART */PORTA->PCR[2] |= PORT_PCR_MUX(6);break;case PORT_2:PORTA->PCR[3] &= ~(BIT8 | BIT9 | BIT10);    /* LPUART - Disable */PORTA->PCR[2] &= ~(BIT8 | BIT9 | BIT10);PORTB->PCR[0] |= PORT_PCR_MUX(2);           /* LPUART - ALT2 - to UART */PORTB->PCR[1] |= PORT_PCR_MUX(2);break;default:break;}LPUART0->CTRL |= (LPUART_CTRL_TE_MASK | LPUART_CTRL_RE_MASK);
}

NXP Kinetis的 单片机LPUART 模块调试记录相关推荐

  1. AP6236 WiFi模块调试记录

    AP6236 WiFi模块调试记录 Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 AP6236 WiFi模块调试记录 内核驱动移植 1. 更 ...

  2. Lora模块调试记录

    一.Lora模块调试启动过程调试 1.Lora主程序启动 这个报错主要是GPS模块使用了另外一路的spi,在检查spi的模式.速率等等时候报错.目前没有GPS模块所以不影响正常运行情况下的报错信息忽略 ...

  3. NXP(imx8qxp)上android11的EG25-G(4G)模块调试记录

    文章目录 一.前期准备 二.底层配置 三.添加厂商提供的ril.so库 四.添加对应的配置 五.对应的报错解决 5.1 状态栏里面没有对应的 Mobile data SIM图标 5.2重复打印启动ri ...

  4. Simcom 5G模块调试记录

    最近做一个项目需要用到5G模块,写个博客记录一下调试过程.调试尚未完成,先调到哪写到哪.使用的开发板是ADI公司的ADSP-SC589开发板,Linux内核版本是**经过ADI公司剪裁的4.0.0版本 ...

  5. BC28 NB-IOT模块调试记录

    1.A08版本软件域名解析很慢的情况 用A07版本做域名解析的时候发现很快,但是升级到A08版本,发现变得很慢,咨询原厂说是域名解析配置不对,A08默认是3gpp的epco,国内运营商的IE类型 是p ...

  6. NXP设备上面4G/5G模块调试过程

    一.硬件信息 4G模块:龙尚U9300C 5G模块:龙尚EX510 CPU(LS1023AX) 4G/5G模块的硬件接口是通过两个pci转usb接口的 二.根据龙尚的指导文档添加相应的驱动模块,在op ...

  7. RK3588 Android12 广和通L716 4G模块调试记录

    调试前先找模块厂获取相关资料 Kernel修改: 可用RK的参考配置来控制,把原理图对应角位配置上就行. rk_modem: rk-modem { compatible="4g-modem- ...

  8. ZIGBEE模块调试记录和总结

    1.使用顺舟的zigbee模块. 2.使用"超级终端" 读取模块的基本信息 进行参数的配置 注意超级终端的编码选择GB2312,否则出现乱码. 3.主站 从站的配置. 4.sz02 ...

  9. 【以太网模块调试记录】ZLG EPORTM集成式RJ45调试记录(STM32/GD32)

    ZLG(致远电子)集成式RJ45模块调试记录 集成了RJ45网络接口和PHY芯片(YT8512H) 官网链接:https://www.zlg.cn/Ethernet/Ethernet/product/ ...

  10. WIFI模块调试_RTL8189FTV

    WIFI模块调试记录 本文调试的模块是:BL_M8189FS6(必联的WIFI模块) 简单介绍: 该模块就是用的毛蟹的8189FTV(全程应该是:RTL8189FTV,和RTL8189ETV是有区别的 ...

最新文章

  1. 循环队列之舞伴问题(含源码详解)
  2. 【数据结构与算法】之深入解析“股票的最大利润”的求解思路与算法示例
  3. html自定义js程序,JS中微信小程序自定义底部弹出框
  4. jQuery插件实现的页面功能介绍引导页效果
  5. 计算机应用基础的题库,统考计算机应用基础题库
  6. 【编译原理笔记15】运行存储分配概述,静态存储分配,栈式存储分配,调用序列和返回序列,非局部数据的访问,符号表,符号表建立
  7. html 5拜年贺卡,HTML5+CSS3实现春节贺卡
  8. Ubuntu安装语言包
  9. 微信网页开发 /JS-SDK说明文档
  10. java BMI指数计算
  11. python金融大数据分析师工资待遇_国内数据分析待遇如何?
  12. Could not load extension class org.apache.cxf.transport.http_jetty.JettyDestinationFactory.
  13. java linux解压_在LINUX下 用JAVA如何解压rar文件
  14. C语言 | 文件打开关闭
  15. wireshark解析信令tshark
  16. 吉林大学考研计算机科学与技术,2022年吉林大学计算机科学与技术学院考研初试科目调整通知...
  17. Spring项目启动完成后,自动执行一次指定方法
  18. Hbase按指定列族中指定列的列值查找数据Hbase命令
  19. RC电路的充放过程C语言实现,RC充放电电路图
  20. Java假期班泰安_泰安2019年放假时间表出炉! 春节居然这样放假

热门文章

  1. 阿铭Linux_网站维护学习笔记201903026
  2. 超火动态表白H5源码
  3. JS实现页面字体繁简转换
  4. DELL H330(LSI 3008)RAID卡刷IT直通模式注意事项(避坑指南)
  5. 中望3d快捷键命令大全_中望CAD快捷键命令大全
  6. 网络计划的自由时间和松弛时间free and slack
  7. 工业相机——点阵相机与线阵相机
  8. php 2037时间问题
  9. 十个值得一试的开源深度学习框架
  10. 如何用 DBSCAN 聚类算法做数据分析?