请选择 进入手机版 | 继续访问电脑版
查看: 23|回复: 1

[求助] 求助!开关矩阵的应用问题

[复制链接]

该用户从未签到

4

主题

9

帖子

0

金豆

注册会员

Rank: 2

积分
102
最后登录
2019-9-19
发表于 2019-8-12 11:08:37 | 显示全部楼层 |阅读模式
本帖最后由 jyysns 于 2019-8-12 11:20 编辑

求助各位,我想利用lpc824的wakeup键控制led灯,由原理图得知wakeup键对应P0_4引脚,如图根据引脚说明P0_4有ADC_11的固定功能。

因此先把此功能禁用,再分配开关矩阵PINASSIGN1寄存器的TXD(输出功能)给P0_4引脚。

我希望能实现按下wakeup键,函数读取P0_4电平,控制led。1.但是我发现虽然我禁用了P0_4的固定功能,调试中按下wakeup键仍是原有唤醒功能,不清楚原因,是其实还没有关闭固定引脚功能吗?2.是否应该为P0_4分配TXD还是应该分配RXD(输入功能)或别的什么或干脆不分配(0xff)?下面是我的开关矩阵函数
Chip_Clock_EnablePeriphClock(SYSCTL_CLOCK_SWM);//打开开关矩阵时钟
Chip_SWM_FixedPinEnable(SWM_FIXED_ADC11, 0);//关闭P0_4引脚功能
Chip_SWM_MovablePinAssign(SWM_U1_TXD_O, 4);//分配P0_4 引脚功能
Chip_Clock_DisablePeriphClock(SYSCTL_CLOCK_SWM);//关闭开关矩阵时钟
附上禁用引脚功能的函数
/* true enables, false disables a Switch Matrix fixed-pin Function */
void Chip_SWM_FixedPinEnable(CHIP_SWM_PIN_FIXED_T pin, bool enable)
{
if (enable) {
  Chip_SWM_EnableFixedPin(pin);
}
else {
  Chip_SWM_DisableFixedPin(pin);
}
配置引脚功能的函数
/* assign a movable pin function to a physical pin */
void Chip_SWM_MovablePinAssign(CHIP_SWM_PIN_MOVABLE_T movable, uint8_t pin)
{
uint32_t temp;
int pinshift = PINSHIFT(movable), regIndex = PINASSIGN_IDX(movable); temp = LPC_SWM->PINASSIGN[regIndex] & (~(0xFF << pinshift));
LPC_SWM->PINASSIGN[regIndex] = temp | (pin << pinshift);
}

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

引脚

引脚

寄存器

寄存器
回复

使用道具 举报

该用户从未签到

216

主题

4466

帖子

0

金豆

超级版主

Rank: 8Rank: 8

积分
6695
最后登录
2019-9-20
发表于 2019-8-12 17:59:13 | 显示全部楼层
楼主你可以debug下看看你的寄存器是否已经更改成功了。
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

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

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

GMT+8, 2019-9-20 22:40 , Processed in 0.155563 second(s), 17 queries , MemCache On.

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

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