接口技术实验大全.docVIP

  1. 1、本文档共20页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
接口技术实验大全

1、I/O接口实验: 用某个端口的一个引脚连接小灯,一个引脚连接开关(也可以是另一个端口的引脚),通过开关开合通过MCU控制小灯亮暗。 用B口的19号引脚连接小灯,用E口的5号引脚连接开关,开关通过MCU控制小灯,开关向上拨,小灯亮,开关向下拨,小灯暗,放在主循环中,则形成开关随时开,小灯随时亮的效果。 C/C++语言设计: #include include.h //包含总头文件 int main(void) { //(1)计算给出PORTB19、PORTE5的引脚控制寄存器地址 //POTB端口的引脚控制寄存器基地址为0x4004A000u(后缀u表示无符号数) //POTE端口的引脚控制寄存器基地址为0x4004D000u(后缀u表示无符号数) volatile uint_32 *portB_ptr = (uint_32*)0x4004A000u; //PORTB19、PORTE5的引脚控制寄存器地址=基地址+偏移量 volatile uint_32 *portB_PCR_19 = portB_ptr + 19; volatile uint_32 *portE_PCR_5 = portB_ptr + 5; //(2)计算给出PORTB的数据方向寄存器、输出反转寄存器地址 //POTB端口(作为GPIO功能)的基地址为0x400FF040u //POTE端口(作为GPIO功能)的基地址为0x400FF100u volatile uint_32 *gpioB_ptr = (uint_32*)0x400FF040u; //PORTB的数据方向寄存器地址=基地址+偏移量 volatile uint_32 *portB_PDDR=gpioB_ptr+5; //PORTB的输出寄存器地址=基地址+偏移量 volatile uint_32 *portB_PDOR=gpioB_ptr+0; //PORTB的数据输入寄存器地址=基地址+偏移量 volatile uint_32 *gpioE_ptr = (uint_32*)0x400FF100u; volatile uint_32 *portE_PDDR=gpioE_ptr+5; volatile uint_32 *portE_PDIR=gpioE_ptr+4; //(3)设置PORTB19、PORTE5引脚为GPIO引脚,即令相应引脚控制寄存器的10-8位(MUX)字段为001 *portB_PCR_19=0 *portE_PCR_5=0 //(4)通过PORTB的方向寄存器,定义PORTE5为输入、PORTB19引脚输出 *portE_PDIR = ~(15); //初始化为低电平0 *portB_PDDR |= (119); //定义此引脚为输出引脚 for(;;) { if(BGET(5,*portE_PDI)==0){*portB_PDO= ~ (119);} else {*portB_PDO|=(119);} } return 0; } 2. TTL转USB串口通信实验 在演示实验的基础上,利用串口调试程序发送“1”,小灯亮,发送“0”,小灯暗。 小灯的连接是用 B 口的 9 号引脚和一个小灯接口连接。 #include?includes.h //包含总头文件 int?main(void) { //1.声明主函数使用的局部变量 ?uint_32 run_counter; //主循环次数计数器 //2.关总中断 enter_critical(); // 进入临界区 //3.初始化模块 light_init(LIGHT_PORT, LIGHT_PIN_BLUE, LIGHT_ON); //蓝灯初始化 uart_init (UART_1,BUSCLK, 9600); //串口1、2使用总线时钟24000Khz uart_send_string(UART_1, Hello Uart_1!\r\n);//串口发送初始化提示 //4.全局变量及主函数局部变量赋初值 run_counter = 0; // 运行计数器 //5.使能模块中断及总中断

文档评论(0)

shenlan118 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档