专家
公告
财富商城
电子网
旗下网站
首页
问题库
专栏
标签库
话题
专家
NEW
门户
发布
提问题
发文章
NXP
使用超核库调试KL25 UART发现的疑问与解决过程
2019-07-15 17:50
发布
×
打开微信“扫一扫”,打开网页后点击屏幕右上角分享按钮
站内问答
/
NXP MCU
6622
1
1389
从超核库中加入串口模块时编译报错:
提示这是一个只读变量,不能写入。我跟踪到M
KL25
Z4.h里面发现,UART_Type结构体里面S1被定义为__I,
而__I的宏定义如下,就是用来定义一个只读的类型:
#define __I vola
ti
le const /*!< defines 'read only' permissions */
似乎这是两个地方起冲突了。原因在哪呢?
MKL25Z4.h这个文件是KEIL里自带的,不大可能会出错。但是
在参考手册上面显示,这个低5位其实是可以读写的,w1c的意思是写1清0。两个地方都没问题?
仔细看MKL25Z4.h里UART相关的部分,发现了另一个类似的结构体UART0_Type
看来问题出在这里,UART0是要跟其他的串口模块有区分开来。
下图是除UART0以外的其他串口模块S1这个寄存器的情况,全是只读的。
所以,编程的时候UART0与其他的模块要区分一下。OK,问题解决。
友情提示:
此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
1条回答
LY0206
1楼-- · 2019-07-15 19:40
其实,UART0的结构体在头文件中有自己的定义:
typedef struct {
__IO uint8_t BDH; /**< UART Baud Rate Register High, offset: 0x0 */
__IO uint8_t BDL; /**< UART Baud Rate Register Low, offset: 0x1 */
__IO uint8_t C1; /**< UART Control Register 1, offset: 0x2 */
__IO uint8_t C2; /**< UART Control Register 2, offset: 0x3 */
__IO uint8_t S1; /**< UART Status Register 1, offset: 0x4 */
__IO uint8_t S2; /**< UART Status Register 2, offset: 0x5 */
__IO uint8_t C3; /**< UART Control Register 3, offset: 0x6 */
__IO uint8_t D; /**< UART Data Register, offset: 0x7 */
__IO uint8_t MA1; /**< UART Match Address Registers 1, offset: 0x8 */
__IO uint8_t MA2; /**< UART Match Address Registers 2, offset: 0x9 */
__IO uint8_t C4; /**< UART Control Register 4, offset: 0xA */
__IO uint8_t C5; /**< UART Control Register 5, offset: 0xB */
} UART0_Type;
楼主也可以参考下官方KL25的例程
加载中...
一周热门
更多
>
相关问题
手把手学会例程系列:i.MX<二>:图解i.mx53源码补丁+烧录(...
59 个回答
从零开始MQX开发之二 创建与调试MQX项目
24 个回答
7009: Trim value invalid, value is blank or zero是什么错误
0 个回答
怎么头像消失啊?
23 个回答
求推荐KINETIS评估板:必备USB HS,ETHERNET
5 个回答
快点围观,USB 2.0协议资料分享
99 个回答
求助:PE中如何使用MK10DX256VMC7!(已解决)
12 个回答
希望来点MQX相关的教程资料。
12 个回答
相关文章
基于IMX6Q移植uboot2018-09——添加单板
0个评论
IMX6UL定时器按键消抖实验
0个评论
I.MX6U处理器LED灯点亮汇编程序代码编写
0个评论
在NXP I.MX6上做一个基于Opencv和OpenGL的打砖块游戏
0个评论
【RFID安全】浅谈卡片破解
0个评论
LM75a
0个评论
emwin字库制作及汉字显示
0个评论
STM32学习之I2C
0个评论
×
关闭
采纳回答
向帮助了您的网友说句感谢的话吧!
非常感谢!
确 认
×
关闭
编辑标签
最多设置5个标签!
NXP
保存
关闭
×
关闭
举报内容
检举类型
检举内容
检举用户
检举原因
广告推广
恶意灌水
回答内容与提问无关
抄袭答案
其他
检举说明(必填)
提交
关闭
×
关闭
您已邀请
15
人回答
查看邀请
擅长该话题的人
回答过该话题的人
我关注的人
typedef struct {
__IO uint8_t BDH; /**< UART Baud Rate Register High, offset: 0x0 */
__IO uint8_t BDL; /**< UART Baud Rate Register Low, offset: 0x1 */
__IO uint8_t C1; /**< UART Control Register 1, offset: 0x2 */
__IO uint8_t C2; /**< UART Control Register 2, offset: 0x3 */
__IO uint8_t S1; /**< UART Status Register 1, offset: 0x4 */
__IO uint8_t S2; /**< UART Status Register 2, offset: 0x5 */
__IO uint8_t C3; /**< UART Control Register 3, offset: 0x6 */
__IO uint8_t D; /**< UART Data Register, offset: 0x7 */
__IO uint8_t MA1; /**< UART Match Address Registers 1, offset: 0x8 */
__IO uint8_t MA2; /**< UART Match Address Registers 2, offset: 0x9 */
__IO uint8_t C4; /**< UART Control Register 4, offset: 0xA */
__IO uint8_t C5; /**< UART Control Register 5, offset: 0xB */
} UART0_Type;
楼主也可以参考下官方KL25的例程
一周热门 更多>