NXP Kinetis的 单片机LPUART 模块调试记录
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 模块调试记录相关推荐
- AP6236 WiFi模块调试记录
AP6236 WiFi模块调试记录 Platform: RK3368 OS: Android 6.0 Kernel: 3.10.0 文章目录 AP6236 WiFi模块调试记录 内核驱动移植 1. 更 ...
- Lora模块调试记录
一.Lora模块调试启动过程调试 1.Lora主程序启动 这个报错主要是GPS模块使用了另外一路的spi,在检查spi的模式.速率等等时候报错.目前没有GPS模块所以不影响正常运行情况下的报错信息忽略 ...
- NXP(imx8qxp)上android11的EG25-G(4G)模块调试记录
文章目录 一.前期准备 二.底层配置 三.添加厂商提供的ril.so库 四.添加对应的配置 五.对应的报错解决 5.1 状态栏里面没有对应的 Mobile data SIM图标 5.2重复打印启动ri ...
- Simcom 5G模块调试记录
最近做一个项目需要用到5G模块,写个博客记录一下调试过程.调试尚未完成,先调到哪写到哪.使用的开发板是ADI公司的ADSP-SC589开发板,Linux内核版本是**经过ADI公司剪裁的4.0.0版本 ...
- BC28 NB-IOT模块调试记录
1.A08版本软件域名解析很慢的情况 用A07版本做域名解析的时候发现很快,但是升级到A08版本,发现变得很慢,咨询原厂说是域名解析配置不对,A08默认是3gpp的epco,国内运营商的IE类型 是p ...
- NXP设备上面4G/5G模块调试过程
一.硬件信息 4G模块:龙尚U9300C 5G模块:龙尚EX510 CPU(LS1023AX) 4G/5G模块的硬件接口是通过两个pci转usb接口的 二.根据龙尚的指导文档添加相应的驱动模块,在op ...
- RK3588 Android12 广和通L716 4G模块调试记录
调试前先找模块厂获取相关资料 Kernel修改: 可用RK的参考配置来控制,把原理图对应角位配置上就行. rk_modem: rk-modem { compatible="4g-modem- ...
- ZIGBEE模块调试记录和总结
1.使用顺舟的zigbee模块. 2.使用"超级终端" 读取模块的基本信息 进行参数的配置 注意超级终端的编码选择GB2312,否则出现乱码. 3.主站 从站的配置. 4.sz02 ...
- 【以太网模块调试记录】ZLG EPORTM集成式RJ45调试记录(STM32/GD32)
ZLG(致远电子)集成式RJ45模块调试记录 集成了RJ45网络接口和PHY芯片(YT8512H) 官网链接:https://www.zlg.cn/Ethernet/Ethernet/product/ ...
- WIFI模块调试_RTL8189FTV
WIFI模块调试记录 本文调试的模块是:BL_M8189FS6(必联的WIFI模块) 简单介绍: 该模块就是用的毛蟹的8189FTV(全程应该是:RTL8189FTV,和RTL8189ETV是有区别的 ...
最新文章
- 循环队列之舞伴问题(含源码详解)
- 【数据结构与算法】之深入解析“股票的最大利润”的求解思路与算法示例
- html自定义js程序,JS中微信小程序自定义底部弹出框
- jQuery插件实现的页面功能介绍引导页效果
- 计算机应用基础的题库,统考计算机应用基础题库
- 【编译原理笔记15】运行存储分配概述,静态存储分配,栈式存储分配,调用序列和返回序列,非局部数据的访问,符号表,符号表建立
- html 5拜年贺卡,HTML5+CSS3实现春节贺卡
- Ubuntu安装语言包
- 微信网页开发 /JS-SDK说明文档
- java BMI指数计算
- python金融大数据分析师工资待遇_国内数据分析待遇如何?
- Could not load extension class org.apache.cxf.transport.http_jetty.JettyDestinationFactory.
- java linux解压_在LINUX下 用JAVA如何解压rar文件
- C语言 | 文件打开关闭
- wireshark解析信令tshark
- 吉林大学考研计算机科学与技术,2022年吉林大学计算机科学与技术学院考研初试科目调整通知...
- Spring项目启动完成后,自动执行一次指定方法
- Hbase按指定列族中指定列的列值查找数据Hbase命令
- RC电路的充放过程C语言实现,RC充放电电路图
- Java假期班泰安_泰安2019年放假时间表出炉! 春节居然这样放假