tag 标签: sam4l

相关博文
  • 热度 204
    2015-1-16 10:06
    1372 次阅读|
    0 个评论
        本人 研究 SAM4L Xplained Pro starter kit 的库,发现官方的库好庞大,但如果调用官方的 API 函数,上手比较快。往后我会发布一些深入到寄存器的操作和自己建工程模板的例程。现在先易后难。我先刚修改官方的 GPIO 例程,把套件上的 LED 先点亮。用到的函数不多。现在直奔主题吧。 我这次使用的开发环境是 IAR 6.7 ,没有这个编译器的伙伴们,可以带官网下载,记住要下载 ARM 版本的,这个原因我就不多说了,前面我也有说到。 官方的库比较庞大,那么我们怎么利用库来快速上手呢。 首先我打开工程时的目录结构如下图: 我们的 main 函数,实现功能的 c 文件在如下图的画着黄色方框的位置: 点开这个 gpio_example.c 的文件,然后我们就可以来修改这个例程了。 首先我把例程除了 sysclk_init(); 函数之外的都屏蔽掉了。然后我们自己就可以自己添加 API 函数实现相应的功能了。这次我实现的功能是点亮板上的 LED 。在点亮 LED 是我们需要用到两个函数: ioport_set_pin_dir(xx,xx); ioport_set_pin_level(xx,xx); ioport_set_pin_dir(xx,xx); 这个函数的功能一看名字就大概知道是干啥的了,就是设置某一个管脚的方向, xx 是要填进去的参数,这些函数都是带参数的,有传入一个形参进去的,如果玩过 st 的 stm32 库的小伙伴就会很熟悉了。第一个参数填的的某一个管脚。第二个参数是管脚的方向。如: ioport_set_pin_dir(PIN_PC07, IOPORT_DIR_OUTPUT); 就是把 PORTC 的第 7 个脚设置位输出。 PIN_PC07 可以在 pio_sam4lc4c.h 这个头文件找到定义,如下图: 第二个参数是管脚的方向,他有两个参数: 填 IOPORT_DIR_INPUT 是代表输入,填 IOPORT_DIR_OUTPUT 是代表输出。 其他管脚的初始化方向也是这样做的。 初始化管脚函数的底层函数是。我把他贴上来吧: 其实就是对 ODER , STER 这两个寄存器的操作。如果想设置输出,就对寄存器 ODER 置一,对 STER 清零,像 GPIO_ODERX , X 等于 S 时是代表置一, X 等于 C 时代表清零。这个可以手册可以知道,如图: ioport_set_pin_level(xx, xx); 这个函数是设置某个 IO 口的电平状态。 同样这个函数也是带两个参数输入的。 第一个参数是选择管脚,第二个参数是设置 IO 口的电平状态。如: ioport_set_pin_level(PIN_PC07, IOPORT_PIN_LEVEL_LOW); 就是设置 PORTC 的第 7 个脚低电平。 在主函数我添加了 3 个函数,就可以实现点亮 LED 的功能了。因为 LED 是接 PORTC07 脚的,从评估板的原理图可以看到,如下图: 代码如下: int main(void) {     /* Initialize the SAM system */     sysclk_init();       ioport_set_pin_dir(PIN_PC07, IOPORT_DIR_OUTPUT);     ioport_set_pin_level(PIN_PC07, IOPORT_PIN_LEVEL_LOW);               while (1) {             } } 下面,贴上测试图: 黄色的灯点亮了
  • 热度 19
    2015-1-16 10:06
    1245 次阅读|
    2 个评论
            Atmel 的 SAM4L-Xplained-Pro 套件的 MCU 是 cortex-m4 核,那么 IAR 肯定支持这款套件。于是我今天就那 IAR 演示了一个 GPIO 的例程。 关于 IAR 的版本,最好要比较新的,推荐用 7.3 版本的,这样会对这款的套件支持得教好,还有注意的一点是,大家下载 IAR 时,要选 ARM 版本的,因为每种不同的芯片的 IAR 是不同的,如有 IAR for 430 , IAR for stm8 等等。 这是我电脑上 IAR 的版本,如图: 关于 IAR 的例程,大家可以进去这个链接里下载: http://www.atmel.com/tools/AVRSOFTWAREFRAMEWORK.aspx 就是下这个 Atmel Software Framework 3.19 的压缩包就可以了。 这个例程支持多种型号和套件的。我们的 SAM4L-Xplained-Pro 套件的例程的所在位置如下图: 把 GPIO 的打开后的后,我来说说 IAR 要注意的地方吧,在顶端,画着红色方框的位置是你打开以下文件的历史,如果嫌文件打开得很多,可以在某个文件上右击,可以选择单个文件关闭或者全部关掉。   还有在 IAR 编译器的最右方,也可以查看你以前打开过的文件的历史。             关于 IAR 的使用,我就简单说说吧。     图上画着红色框的是编译按钮,第一个是所在文件的编译,第二个是整个工程编译,一般我们是用第二个按钮的。画着黄色框的是下载并仿真的按钮。点击它就可以对板子进行硬件仿真并下载程序,前提是你要有仿真器。画着绿色框的仿真不下载,这个只是仿真,程序不会吓到单片机里的。 接下来,要注意的是编译器的仿真器的选择,仿真器的选择如下图: 当点击仿真时,编译器会切换到仿真的界面,如下图: 画这红色方框的功能按钮,我就不多说了,跟其他的编译器也是大同小异的。 这个例程的功能是一上电,板子的串口会向电脑打印一些相关的信息,然后可以通过按下板子上的 SWO 键可以控制 LED0 的亮灭。 上电时打印信息如下图: 大家要注意的是例程串口的波特率是设置位 115200 的,管脚是 PORTC26 和 PORTC27 ,如下图: 在例程的 init.c 的文件里还有很多外设的初始化,大家可以通过在 conf_board.h 文件宏定义一个 #if defined (XXXXXXX) 括号里的参数就可以了,就如例程里初识化串口,如下图: 还有一个使用频率很高的功能,就是查找 XXX 定义的来源,当你想查某个变量或者这个函数是出自于哪里,可以使用这个功能,具体操作方法是把鼠标停在你想查看的函数中,然后右击鼠标,选择如 板子的串口接线如下图:  
  • 热度 22
    2015-1-16 10:05
    1151 次阅读|
    0 个评论
        当今能源紧缺的背景下,低功耗就显得尤为重要。今天用到了 SAM4L Xplained Pro starter kit 套件的 Segment LCD1 Xplained Pro 首先普及一下什么是段码液晶吧:          段码液晶,或段式液晶屏,是液晶产品中的一种,但在液晶行业内,一般称为图案型液晶屏,笔段式液晶屏,单色液晶屏等等。        段码液晶叫法起源于早期液晶显示屏开始应用之时,主要是替代 LED 数码管(由 7 个笔段组成,用于显示数字 0 ~ 9 ),如计算器、钟表等,显示内容均为数字,也较简单。   用途 仪器、仪表:煤气表、水表、公交系统、加油机计数 显示屏 办公设备:传真机、打卡机、考勤机、门禁系统 通讯设备:各种 IC 卡电话、网络电话、 IP 电话 银行系统: POS 机 税务系统:税控机 医疗设备:生理监护仪及各类保健器械 工控设备:自动化控制 各种人机界面 , 手持设备等   可以看出段码液晶的用途还挺多的,而 Segment LCD1 Xplained Pro 功耗比较低,只有 40ma 如下图接上官方编译器是出现的信息:   Segment LCD1 Xplained Pro 能显示数字 0~9 ,还有几个符号,如官方提供的符号如下图: 接口对应的定义 官方 Segment LCD1 Xplained Pro 模块详细信息: 我现在用的官方例程跑跑个演示: 使用的编译环境是官方的 Atmel Studio 。 程序首先是系统时钟初始化,调用 sysclk_init(); 函数 然后是板级初始化,调用 bord_init(); 函数 接着是配置串口,调用前面的 configure_console(); 函数。 程序执行完这些后,单片机的串口就会向电脑上打印一些信息,如下图: 然后串口就会一直等待用户输入信息: 当我们用串口发送 c 字符时,就会执行清屏操作; 当我们用串口发送 h 字符时,就会执行显示操作; 当我们用串口发送 1 字符时,就会执行显示 1 到 6 的数字; 当我们用串口发送 2 字符时,就会执行显示 10:23 这个时间效果; 当我们用串口发送 3 字符时,就会执行显示文本滚动的效果; 大家要注意的是 PC 发送和接受都选择文本类型。 如下图: 输入 h 字符是   输入 c 字符: 输入 1 字符 输入 2 字符 输入 2 字符:   Segment LCD1 Xplained Pro 扩展模块显示还是很赞滴。