3393|2

1291

帖子

0

TA的资源

纯净的硅(中级)

楼主
 

Atmel SAM4S Xplained Pro starter kit之PIO [复制链接]

    今天我来分享下SAM4S Xplained Pro starter kit套件中的SAM4SPIO模块。这次我使用的编译环境是IAR,自己从AS 6.2的一个例程移植到IAR里,这是个带库的模板,里面有几个外设的驱动文件。还有这个模板方便在网上分享我自己写的源代码,这也是我自己建一个模板的初衷,因为官方的例程包很大,这是因为官方例程包里有针对多个芯片的例程,所以单个芯片的工程很难分离。所以我自己花了点时间自己建了一个带库的模板,这样大家就可以使用库或者寄存器的写法。SAM4S的PIO跟SAM4E结构是一样的。
    通常我们学习每种MCU时,基本上都会学他的的GPIO功能。这里我要引用一下别人的的总结了:SAM4S芯片的GPIO都由并行输入、输出控制器(PIOParallel Input/Output Controller)来管理。所有的IO口都有好多种不同的输入输出模式,比如:上拉、下拉、施密特触发器输入、多驱动(开漏)、滤波、去抖动、输入改变中断。SAMS32C具有PIOAPIOBPIOC三个PIO控制器。
下面就是PIO的框图:
还有PIO涉及的寄存器:
可以看出,PIO的寄存器很多,这也就验证了PIO强大的一个体现的很好证明。

接下来我就是用库函数的来实现对PIO的控制,我这里用到了GPIO的函数,这里本质上是对PIO的操作,如下图的gpio.h文件截图的内容:
现在我就来用库函数来点亮板子上的LED
我们的步骤是:
1)初始化时钟
2)使能PIO外设的时钟
3)设置PIO外设脚的类型
4)输出电平控制LED的亮灭。

下面的代码如下:
  1. int main(void)
  2. {
  3.         sysclk_init();               //初始化时钟
  4.     arch_ioport_init();       //使能PIO外设的时钟
  5.     gpio_configure_pin(PIO_PC23_IDX,PIO_OUTPUT_1 | PIO_DEFAULT);    //设置PIOC23脚位输出
  6.         while(1)
  7.         {
  8.            gpio_toggle_pin(PIO_PC23_IDX);                 //翻转PIOC23脚的电平
  9.         }
  10. }
复制代码
测试图:
寄存器版的写法:
寄存器我就不多说了,在前面的SAM4E也有说,附上链接:
https://bbs.eeworld.com.cn/thread-454006-1-1.html
源代码:
  1. int main(void)
  2. {
  3.         sysclk_init();                                                          //初始化时钟
  4.         //arch_ioport_init();                                                     //使能PIO外设的时钟
  5.         //gpio_configure_pin(PIO_PC23_IDX,PIO_OUTPUT_1| PIO_DEFAULT);            //设置PIOC23脚位输出
  6.         REG_PIOC_PER |= (1<<23);            
  7.         REG_PIOC_OER |= (1<<23);

  8.         while(1)
  9.         {
  10.              REG_PIOC_CODR =1 << 23;  
  11.          
  12.         }
  13. }
复制代码

附上我的模板:
SAM4S_PIO.rar (1.37 MB, 下载次数: 3)



最新回复

你的Xplained 系列很全啊 各式各样的  详情 回复 发表于 2015-1-8 08:35
点赞 关注
 

回复
举报

2144

帖子

3

TA的资源

五彩晶圆(中级)

沙发
 
你的Xplained 系列很全啊
各式各样的

点评

我有SAM4L,SAM4S和SAM4E的  详情 回复 发表于 2015-1-8 09:26
 
个人签名电工
 
 

回复

1291

帖子

0

TA的资源

纯净的硅(中级)

板凳
 
lyzhangxiang 发表于 2015-1-8 08:35
你的Xplained 系列很全啊
各式各样的
我有SAM4L,SAM4S和SAM4E的



 
 
 

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

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/6 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2025 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表