77范文网 - 专业文章范例文档资料分享平台

英飞凌IO学习总结

来源:网络收集 时间:2019-03-04 下载这篇文档 手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:或QQ: 处理(尽可能给您提供完整文档),感谢您的支持与谅解。点击这里给我发消息

一. 端口引脚通用结构图

PORTn->HWSEL 引脚硬件选择寄存器 PORTn->PPS 引脚省电寄存器

PORTn->IOCR 输入输出控制寄存器 PORTn->PHCR 焊盘滞后控制寄存器 PORTn->IN 输入寄存器 PORTn->OMR 输出修改寄存器 PORTn->OUT 输出寄存器

二.寄存器操作

(1)输入模式(前四个直接输入,后四个反相输入)

端口引脚的电压通过焊盘内的施密特触发器被转换逻辑电平0或1,可以选择将该电平反相输入或直接输入,Pn_IN读取。还可以通过ALTIN连接多个片内外设。通过控制PORTn->IOCR来控制输入模式,Pn_IN和ALTIN始终都是代表输入,与引脚配置成输入输出无关。

#define INPUT 0x00U 不激活上/下拉器件 #define INPUT_PD 0x08U 激活下拉

#define INPUT_PU 0x10U 激活上拉(高)

#define INPUT_PPS 0x18U 不激活,Pn_OUT连续采样输入值

#define INPUT_INV 0x20U 不激活上/下拉器件 #define INPUT_INV_PD 0x28U 激活下拉

#define INPUT_INV_PU 0x30U 激活上拉

#define INPUT_INV_PPS 0x38U 不激活,Pn_OUT连续采样输入

例如:

__STATIC_INLINE void P0_0_set_mode(uint8_t mode) {

PORT0->IOCR0 &= ~0x000000f8UL; PORT0->IOCR0 |= mode << 0; }

_STATIC_INLINE void P0_0_set_standard_hysteresis(){ PORT0->PHCR0 &= ~0x00000004UL; }

__STATIC_INLINE void P0_0_set_large_hysteresis(){ PORT0->PHCR0 |= 0x00000004UL; }

(2)输出模式

配置PORTn->IOCR来选择输出模式,通过PORTn->OUT输出结果。如果要修改输出,

应该配置PORTn->OMR,这样不会影响PORTn->OUT的其他位。

#define OUTPUT_PP_GP 0x80U 推挽通用输出 #define OUTPUT_PP_AF1 0x88U 推挽复用1 #define OUTPUT_PP_AF2 0x90U #define OUTPUT_PP_AF3 0x98U #define OUTPUT_PP_AF4 0xA0U #define OUTPUT_PP_AF5 0xA8U #define OUTPUT_PP_AF6 0xB0U

#define OUTPUT_PP_AF7 0xB8U 推挽复用7

#define OUTPUT_OD_GP 0xC0U 开漏通用处处 #define OUTPUT_OD_AF1 0xC8U 开漏复用1 #define OUTPUT_OD_AF2 0xD0U

#define OUTPUT_OD_AF3 0xD8U #define OUTPUT_OD_AF4 0XE0U #define OUTPUT_OD_AF5 0xE8U #define OUTPUT_OD_AF6 0xF0U

#define OUTPUT_OD_AF7 0XF8U 开漏复用7

__STATIC_INLINE void P0_0_set(void){ PORT0->OMR = 0x00000001UL; }

__STATIC_INLINE void P0_0_reset(void){ PORT0->OMR = 0x00010000UL; }

__STATIC_INLINE void P0_0_toggle(void){ PORT0->OMR = 0x00010001UL; }

(3)硬件控制的IO

PORTn->HWSEL允许选择不同的硬件”主机。 例如:

_STATIC_INLINE void P0_0_set_hwsel(uint32_t config) {

PORT0->HWSEL &= ~0x00000003UL; PORT0->HWSEL |= config << 0; }

(4)省电模式

例如:

__STATIC_INLINE void P0_0_enable_pps(void) {

PORT0->PPS |= 0x00000001UL; }

__STATIC_INLINE void P0_0_disable_pps(void) {

PORT0->PPS &= ~0x00000001UL; }

三.IO口操作流程示例 #include #include \void PORTS_vInit(void) {

SCU_GENERAL->PASSWD = 0x000000C0UL; SCU_CLK->CLKCR = 0x3FF00400UL; // 8 MHz MCLK, 8 MHz PCLK while((SCU_CLK->CLKCR)&0x40000000UL); // 等待VDDC电压稳定 SCU_GENERAL->PASSWD = 0x000000C3UL;

P0_0_set_mode(INPUT); // P0_0为不激活拉器件输入 P0_1_set_mode(OUTPUT_PP_GP); // 推挽通用输出

P0_6_set_mode(OUTPUT_PP_GP); // P0_7_set_mode(OUTPUT_PP_GP); // }

void PORTS_Handler(void) { if (P0_0_read()==0) { P0_1_set(); P0_6_reset(); P0_7_toggle(); } else { P0_1_reset(); P0_6_set(); P0_7_toggle(); } }

// // // // // //

百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库英飞凌IO学习总结在线全文阅读。

英飞凌IO学习总结.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印 下载失败或者文档不完整,请联系客服人员解决!
本文链接:https://www.77cn.com.cn/wenku/zonghe/496059.html(转载请注明文章来源)
Copyright © 2008-2022 免费范文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ: 邮箱:tiandhx2@hotmail.com
苏ICP备16052595号-18
× 注册会员免费下载(下载后可以自由复制和排版)
注册会员下载
全站内容免费自由复制
注册会员下载
全站内容免费自由复制
注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: