3 Hello, World "Hello, world"几乎所有的编程语言入门教材的第一课。 它的起源要追溯到1972 年,贝尔实验室著名研究员Brian Kernighan 在撰写“B语言教程与指导(Tutorial Introduction to the Language B)”时初次使用(程序),这是目前已知最早的在计算机著作中将 hello 和 world 一起使用的记录。之后,在 1978 年,他在他和 Dennis Ritchie 合作撰写的C 语言圣经“TheC Programming Language”中,延用了“hello,world”句式,作为开篇第一个程序。在这个程序里,输出的”hello,world”全部是小写,没有 感叹号,逗号后有一空格。虽然之后几乎没能流传下来这个最初的格式,但从此用hello world 向世界打招呼成为惯例。 我们的第二课就跟这个"Hello,world"有关。 3.1 nRF51822 的 UART nRF51822 的串口支持如下特性: 全双工(Full-duplex) 自动的 flow control 奇偶校验并自动产生校验位 高达 1Mbps的带宽 3.1.1 管脚配置 nRF51822 的任何一个 GPIO 都可以用作 UART。这样极大的提高了布线的灵活性,有效的降低了 PCB的尺寸(或者层数)。 3.1.2 奇偶校验 当使能自动奇偶校验后,校验位可以自送生成。如果不想使用自动方式,还可以由TXPARITY寄存器特殊指定。 3.1.3 Error 当结束位没有被正确识别时,将会产生一个ERROR event。另外,当 RXD一直被拉低超过一帧数据的长度也会产生错误。 3.1.4 flow control(流控) CTS 和 RTS 用于控制流量,如果不正确设置将无法显示。请注意相应的串口调试软件中也要根据代码配置开启(或关闭) RTS/CTS 的选项。 3.2 UART 寄存器 figure 1 UART registers 3.2.1 UART 寄存器简介 3.2.2 波特率寄存器 figure 2 UART baudrate registers 3.3 官方 uart 代码样例 3.3.1 硬件连接 请将Micro USB连接线(赠品)一端插在AK board的“J1”上,另一端插入电脑的USB端口。 nRF51822 AK 通过 TX(pin12)和RX(pin14)收发数据。 安装 SDK后,源代码位于: <keil path>\ARM\Device\Nordic\nRF51822\Board\PCA10001\uart_example\) 不需要了解代码内容的,编译并下载程序后,可以直接跳到3.3.4小节。 3.3.2 simple_uart_config 函数讲解:
注意:本例程开启flowcontrol,所以设置HWFC为true。 3.3.4 增加打印“Hello,world”代码: 在代码中的107行加入如下代码:
电脑端串口调试软件可以使用商业化的SecureCRT 或者开源的Putty。下面以 SecureCRT 为例,讲解设置流程。 3.4.1 找到虚拟串口 邮件单击“我的电脑”,在弹出菜单中选择“管理”,并在下图弹出窗口左侧选择“设备管理器”。本例中显示,找到的虚拟串口为(COM7)。
3.4.2 配置 SecureCRT 用 SecureCRT 建立相应串口的连接,本例中使用(COM7),并进行如下配置(应选中图中的RTS/CTS选项): 最后,使用 KEIL下载程序到 nRF51822AK II中,串口调试软件会显示如下内容: 本样例还具有回显功能,即敲击键盘后,串口数据会发送到nRF51822,nRF51822接收后会回传到串口终端,并在屏幕上显示。 nRF51822 的 Event &Task nRF51822 中引入了更容易理解的 Event &Task 机制。Task是命令外设(TWI、I2C、 RADIO 之类)执行任务,Event 是外设汇报上来的执行过程中的各种事件(状态)。另外,event也与 Interrupt(中断)有关。 关于 Task,Event 以及 Interrupt 我们会在后面详细介绍。
|
|