Cypress-CYT4B-Mcal配置说明(二)Dio模块配置

Dio模块提供的作用即GPIO功能,包括输出高、低电平和读取引脚当前电平。此外,当引脚复用为其他模块功能后,仍可在Dio中配置该引脚以及使用Dio标准接口读取或写入引脚电平值

Dio模块的配置与Port类似,先配置Port口,再配置Port中的通道(引脚)。

DioPortId配置

一个DioPort中可包含多个DioChannel。

DioPortId与MCU实际Port序号相对应。

DioChannel配置

+ DioChannelId:每个DioChannel具有唯一的ID。计算公式为:DioChannelId = PORT*3+PIN。 + DioChannelPin:Port通道名称,必须与DioChannelId相对应。

DioChannelGroup配置

将同一Port下的Dio通道配置成Dio通道组后,可以使用Dio_ReadChannelGroup( )和Dio_WriteChannelGroup( )读取或写入整个Dio通道组的值。

在DioPort中新建DioChannelGroup。

  • DioChannelGroupIdentification:默认生成的保存Dio通道组的结构体信息。
  • DioPortMask:用来选择Dio通道的掩码。例如,在Port0中配置了P0.0和P0.1作为Dio通道,则掩码为00000011 = 0X03 。

功能演示

Dio模块在使用时不需要初始化,只需初始化Mcu和Port。
Mcu_Init(&McuConf_McuModuleConfiguration_McuModuleConfiguration_0);
Mcu_SetMode(McuConf_McuModeSettingConf_McuModeSetting_CM7_0_Active);
Mcu_InitClock(McuConf_McuClockSettingConfig_McuClockSettingConfig_Active);
while(Mcu_GetPllStatus() != MCU_PLL_LOCKED)
{
}
Mcu_DistributePllClock();
Port_Init(&PortConf_PortConfigSet_PortConfigSet_0);

输出功能

初始化定时器,定时时间为10ms,在定时器中断函数中添加测试代码:

使用Dio_WriteChannel( )令通道电平每500ms翻转一次:

static uint16 Count = 0;
if(Count % 100 == 0)
{
    Dio_WriteChannel(DioConf_DioChannel_CAN_STB02,STD_HIGH);
}
else if(Count % 50 == 0)
{
    Dio_WriteChannel(DioConf_DioChannel_CAN_STB02,STD_LOW);
}
Count++;

使用示波器观察引脚电平变化:

输入功能

在定时器10ms中断函数中添加测试代码:

使用Dio_ReadChannel( ) 不断读取通道电平:

DI_Result_IPWM15 = Dio_ReadChannel(DioConf_DioChannel_IPWM15);

分别将测试引脚外接0V和3.3V,并使用调试工具观察读取到的电平值:

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值