4.1 CC2530单片机串口发送数据 课件(共109张PPT)-《单片机技术与C语言基础 》同步教学(电子工业版)

资源下载
  1. 二一教育资源

4.1 CC2530单片机串口发送数据 课件(共109张PPT)-《单片机技术与C语言基础 》同步教学(电子工业版)

资源简介

(共109张PPT)
单片机与C语言技术应用
第四单元 任务1
4.1 CC2530单片机串口发送数据
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
学习目标
01
掌握串口UART通信的物理层连接方式;
掌握串口UART通信的数据帧格式及波特率计算;
掌握扫描方式判断串口发送数据是否完成;
掌握串口发送数据触发中断;
掌握扫描方式判断串口接收数据;
掌握串口接收数据触发中断;
掌握串口命令控制交通信号灯系统。
学习目标
01
能对与串口通信数据帧格式以及波特率相关的寄存器进行设置;
能对扫描方式和中断方式完成串口发送数据的相关寄存器进行配置;
能对扫描方式和中断方式完成串口接收数据的相关寄存器进行配置;
能使用串口命令控制交通信号灯的开关。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.1 CC2530单片机串口发送数据
任务要求与任务分析
02
● 任务要求:
①黑板通电后,D5绿色LED熄灭(绿灯灭),串口发送数据0xAF;
②发送成功后,PC机接收到数据0xAF, D5红色LED点亮(绿灯亮);
③串口发送效果仅上电一次,不可循环。
任务要求与任务分析
02
● 任务分析:
中断方式串口发送数据0xAF至PC机。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.1 CC2530单片机串口发送数据
串行通信与并行通信
1
知识储备
03
CC2530的串行通信
2
3
4
CC2530的异步UART通信数据帧格式
CC2530串口通信初始化
03
知识储备
计算机与外界的信息交换称为通信。通信的基本方式可以分为串行通信和并行通信两种。
串行通信是指数据的各位在同一根数据线上依次逐位发送或接收。
每位数据占据的时间长度固定,需要的数据线少,成本低,但传输速率小,效率低,特别适合于主机与主机、主机与外设之间的远距离通信
03
知识储备
串行通信方式:
03
知识储备
并行通信是指数据的各位同时在多根数据线上发送与接收的通信方式。
并行通信传输速率大,效率高,但需要的数据线较多,成本高,干扰大,可靠性差,一般适用于短距离通信,多用于计算机内部各部件之间的数据交换。
03
知识储备
并行通信方式:
串行通信与并行通信
1
知识储备
03
CC2530的串行通信
2
3
4
CC2530的异步UART通信数据帧格式
CC2530串口通信初始化
03
知识储备
串行通信又分为同步串行通信和异步串行通信。
CC2530提供USART0和USART1两个串行通信接口,它们能分别运行于同步SPI通信模式或异步UART通信模式。
03
知识储备
(1)同步SPI通信模式
同步SPI通信模式中,主机和从机共同使用同一时钟,用来作为主从同步。
通信时,主机与从机之间以帧为单位进行数据传输,一次通信只传送一帧信息。
同步SPI模式支持主从模式,在一个主机与一个或者多个从机之间建立通信时,需要单独的一根片选线来选择从机接收数据。
同步SPI通信模式共需要五根连接线,分别为地线GND、从机选择线CS、时钟信号线CLK、主机输出/从机输入线MOSI、主机输入/从机输出线MISO。
若整个同步SPI通信中只有一个从机,则可以去除从机选择线CS。
03
知识储备
同步SPI通信模式连线方式:
03
知识储备
SPI模式具有以下特点:
●可以选择主模式或从模式,但整个同步SPI通信中只能一个设备选择主模式,而其他设备选择从模式,即一个为主机,其它为从机。
●可配置的CLK常态下(未进行通信过程中)为高电平或低电平,同时可以选择CLK的上升沿或下降沿传送数据位。
●每次发送至少发送一个字节数据,可配置为低位优先发送LSB或高位优先发送MSB。
03
知识储备
(2)异步UART模式
异步UART模式中,单片机与外部设备的时钟源不一样。因此,双方通信时,要事先约定好每个数据位所占的时间长度T。
如果数据位时间长度T越小,则1秒中传送数据位的数量越大。
1秒钟所传送的数据位数量为1/T,也把1/T称为通信波特率。
03
知识储备
异步UART模式中的数据位时间长度:
03
知识储备
通信过程中并不是波特率越高越好,波特率越高,数据传输越容易受到外界的干扰。
对于发送设备,波特率规定了发送数据的速率,而对于接收设备,波特率规定了对输入信号采样的时间间隔,即多长时间对输入信号采样一次。
输入信号由高低电平组成,若通信双方采用不同的波特率,则发送方发送的数据将与接收方接收的数据不一致。
03
知识储备
异步UART模式需要三根线:地线GND,发送TXD/接收RXD线,接收RXD/发送线TXD,其中一方的发送端与另一方的接收端连接。
异步UART模式连接方式:
03
知识储备
异步UART通信模式具有以下特点:
●可配置为8位或9位数据通信,当采用9位数据通信时,第9位为奇偶校验位。
●第9位可设置为奇校验、偶校验或无奇偶校验。
●可配置起始位和停止位电平状态,通常情况默认起始位为低电平,停止位为高电平。
●每次发送至少发送一个字节数据,可配置为低位优先发送LSB或高位优先发送MSB,通常情况下默认低位优先发送。
03
知识储备
●可通过扫描判断方式进行数据收发,也可以设置独立的收发中断进行数据收发。
●可设置直接存储器访问(DMA)方式进行独立数据收发,减少收发过程中CPU的干预,提高CPU的利用效率。
●收发过程中具有奇偶校验和帧校验出错状态。
串行通信与并行通信
1
知识储备
03
CC2530的串行通信
2
3
4
CC2530的异步UART通信数据帧格式
CC2530串口通信初始化
03
知识储备
异步UART通信数据帧由起始位、数据位、校验位(可选)和停止位组成。
起始位:低电平,用于标记帧传送的开始,接收端检测到传输线上发送过来的帧起始位时,确定发送端已开始发送数据。
数据位:紧随起始位,低位优先发送,高位在后,可以是5~8位,但通常为8位。
03
知识储备
校验位:不一定有,为可选,用于对数据进行正确性检查,可设定为奇校验、偶校验和无校验三种方式。
停止位:高电平,用于标记数据帧传送的结束,接收端接收到该位时即知一帧数据已经传送完毕。停止位后,线路处于高电平,表示线路处于空闲状态,用于填充帧间的空隙。
03
知识储备
异步UART通信帧格式:
03
知识储备
双方设备进行异步UART通信前,应先约定好异步通信数据帧格式和通信波特率。
串行通信与并行通信
1
知识储备
03
CC2530的串行通信
2
3
4
CC2530的异步UART通信数据帧格式
CC2530串口通信初始化
03
知识储备
(1)时钟源选择
在串口通信中,通信双方必须保持一致的串口通信波特率。
串口通信波特率的配置与系统时钟频率的选择有关,不同的系统时钟频率,对应串口通信波特率寄存器的配置也不一样。
在CC2530单片机中,可以选择内部RC振荡器或外部晶体振荡器作为系统时钟的时钟源,但由于内部RC振荡器的时钟频率受外部环境因素影响,容易发生漂移,从而影响串口通信波特率的误差。
因此对于采用较高通信波特率的场合,通常选择外部晶体振荡器作为系统时钟源。
03
知识储备
本任务所采用的通信波特率为9600bps,而且实验室环境相对比较稳定,因此本任务采用系统默认的16MHz内部RC振荡器作为系统时钟源。
03
知识储备
(2)硬件I/O口选择与配置
CC2530的I/O口既可以作为普通I/O口,也可以作为功能口,通常每个功能口可以指定在两个不同位置的I/O口。
03
知识储备
CC2530的串口0和串口1的通信引脚可以指定在两个不同位置的I/O口上,分别为备用位置1或备用位置2。
指定在备用位置1时,串口0的通信引脚被分配在P0口;
指定在备用位置2时,串口0的通信引脚被分配在P1口。
03
知识储备
外设 功能 P0 P1 7 6 5 4 3 2 1 0 7 6 5 4 3 2 1 0
串口0 备用位置1 RT CT TX RX
备用位置2 TX RX RT CT
串口1 备用位置1 RX TX RT CT
备用位置2 RX TX RT CT
UART总线资源:
03
知识储备
功能I/O口指定在备用位置1或备用位置2取决于PERCFG寄存器的配置。
外设控制寄存器PERCFG:
位 位名称 复位值 操作 描述
7 - 0 R0 没有使用
6 T1CFG 0 R/W 定时器1的I/O位置
0:备用位置1
1:备用位置2
5 T3CFG 0 R/W 定时器3的I/O位置
0:备用位置1
1:备用位置2
03
知识储备
位 位名称 复位值 操作 描述
3:2 - 00 R0 没有使用
1 U1CFG 0 R/W USART1的I/O位置
0:备用位置1
1:备用位置2
0 U0CFG 0 R/W USART0的I/O位置
0:备用位置1
1:备用位置2
03
知识储备
PERCFG寄存器的复位值为0x00,表示CC2530单片机复位后,串口0和串口1默认选择位置1,即P0口的P0_2~P0_5作为串口0通信I/O口,具体配置代码如下:
PERCFG=0x00; //串口0和串口1均选用备用位置1
03
知识储备
不同功能的I/O口可能指定在相同的位置I/O引脚上,但当内部或外部信号同时触发时,此时I/O引脚会对哪种具体功能进行响应取决于I/O口外设优先级控制,可通过配置P2DIR寄存器进行外设引脚优先级配置。
03
知识储备
位 位名称 复位值 操作 描述
7:6 PRIPO[1:0] 00 R/W PO口外设优先级控制。当 PERCFG分配给一些外设到相同引脚时,这些位将确定优先级。详细优先级列表:
00:第1优先级:串口0;第2优先级:串口1;第3优先级:定时器1
01:第1优先级:串口1;第2优先级:串口0;第3优先级:定时器1
外设引脚优先级寄存器P2DIR:
03
知识储备
位 位名称 复位值 操作 描述
7:6 PRIPO[1:0] 00 R/W 10:第1优先级:定时器1通道0~1;第2优先级:USART 1;第3优先级:串口0;第4优先级:定时器1通道2~3
11:第1优先级:定时器1通道2~3;第2优先级:串口0;第3优先级:串口1;第4优先级:定时器1通道0~1
外设引脚优先级寄存器P2DIR:
03
知识储备
位 位名称 复位值 操作 描述
5 - 0 R0 没有使用
4:0 DIRP2_[4:0] 00000 R/W P2_0到P2_4的I/O方向
03
知识储备
P2DIR寄存器的复位值为0x00,表示当多种功能I/O口指定在P0口的P0_2~P0_5位置上时,串口0的优先级最高,具体配置代码如下:
P2DIR &= ~0xc0; //串口0优先级最高
03
知识储备
(3)串口模式及数据帧格式配置
CC2530单片机的串行模式分为同步SPI模式和异步UART模式。本任务初始化时需要选择异步UART模式,通过配置U0CSR寄存器选择UART模式。
03
知识储备
控制和状态寄存器U0CSR:
位 位名称 复位值 操作 描述
7 MODE 0 R/W USART 模式选择
0:SPI模式
1:UART模式
6 RE 0 R/W 启动UART接收器。注意UART完全配置之前不能接收
0:禁止接收器
1:接收器使能
03
知识储备
控制和状态寄存器U0CSR:
位 位名称 复位值 操作 描述
5 SLAVE 0 R/W SPI主或从模式选择
0:SPI主模式
1:SPI 从模式
4 FE 0 R/W0 UART 帧错误状态
0:无帧错误检测
1:字节收到不正确停止位级别
03
知识储备
位 位名称 复位值 操作 描述
3 ERR 0 R/W0 UART奇偶校验错误状态
0:无奇偶校验检测
1:字节收到奇偶错误
2 RX_BYTE 0 R/W0 接收字节状态,UART 模式和 SPI模式。当读UODBUF 该位自动清零,通过写О消除它,这样有效丢弃UOBUF中的数据
0:没有收到字节
1:接收字节就绪
03
知识储备
位 位名称 复位值 操作 描述
1 TX_BYTE 0 R/W0 传送字节状态,UART 和SPI从模式
0:字节没有传送
1:写到数据缓存寄存器的最后子节已经传送
0 ACTIVE 0 R USART发送或接收活动状态。在SPI从属模式下,此位等于从属选择。
0: USART空闲
1:USART忙于传输或接收模式
03
知识储备
本任务采用异步UART模式,因此上电后需要将U0CSR.MODE位置1,具体配置代码如下:
U0CSR |= 0x80; //选择UART通信模式
串口通信时,必须指定数据位的长度、是否有奇偶校验位以及停止位的位数。通常情况下,数据位的长度为8位,无奇偶校验位,停止位为1位,且无流控功能。CC2530通过设置U0GCR和U0UCR寄存器的值完成数据帧格式的定义
03
知识储备
通用控制寄存器U0GCR:
位 位名称 复位值 操作 描述
7 CPOL 0 R/W SPI 的时钟极性
0: 负时钟极性
1: 正时钟极性
6 CPHA 0 R/W SPI 时钟相位
0: 当 SCK 从 CPOL 倒置到 CPOL 时数据输出到 MOSI, 并且当 SCK 从 CPOL 倒置到 CPOL 时数据输入抽样到 MISO。
1: 当 SCK 从 CPOL 倒置到 CPOL 时数据输出到 MOSI,并且当 SCK 从 CPOL 倒置到 CPOL 时数据输入抽样到 MISO。
03
知识储备
位 位名称 复位值 操作 描述
5 ORDER 0 R/W 传送位顺序
0: LSB先传送
1: MSB先传送
4:0 BAUD_E[4:0] 00000 R/W 波特率指数值。BAUD_E和 BAUD_M决定了 UART波特率和SPI的主 SCK 时钟频率。
03
知识储备
串口0控制和状态寄存器U0UCR:
位 位名称 复位值 操作 描述
7 FLUSH 0 R/W1 清除单元。当设置为1时,该事件将会立即停止当前操作并返回单元的空闲状态
6 FLOW 0 R/W UART硬件流使能。用RTS和 CTS 引脚选择硬件流控制的使用,
0:流控制禁止 1:流控制使能
5 D9 0 R/W UART 奇偶校验位。当使能奇偶校验,写入D9的值决定发送第9位的值。如果收到的第9位不匹配收到的字节奇偶校验,接收报告ERR。0:奇校验; 1:偶校验
03
知识储备
位 位名称 复位值 操作 描述
4 BIT9 0 R/W UART9位数据使能。当该位是1时,使能奇偶校验位传输即第9位。如果通过PARITY使能奇偶校验,第9位的内容是通过D9给出的。
0:8位传输; 1:9位传输
3 PARITY 0 R/W UART奇偶校验使能。除为奇偶校验设置该位用于计算,必须使能9位模式。
0:禁用奇偶校验; 1:使能奇偶校验
2 SPB 0 R/W UART停止位数。选择要传送的停止位的位数。0:1位停止位; 1:2位停止位
03
知识储备
位 位名称 复位值 操作 描述
1 STOP 0 R/W UART 停止位的电平必须不同于开始位的电平。
0:停止位低电平;
1:停止位高电平
0 START 0 R/W UART 起始位电平,闲置线的极性采用选择的起始位级别电平的相反电平。
0:起始位低电平;
1:起始位高电平
03
知识储备
U0UCR和U0GCR的复位值都为0x00,表示串口0采用低位先发送、无流控、8位数据位、无奇偶校验位、起始位低电平、停止位低电平。通常串口通信过程都采用停止位高电平,因此需要将U0UCR寄存器的STOP位置1,具体配置代码如下:
U0UCR|=0x02; //配置停止位为高电平
03
知识储备
(4)通信波特率的计算及设置
CC2530单片机串口波特率的大小不仅与波特率控制寄存器U0BAUD、通用控制寄存器U0GCR有关,还与系统主时钟的选择有关。
当系统时钟确定的情况下,串口0的波特率由U0GCR寄存器的BAUD_E和U0BAUD寄存器的BAUD_M共同决定。
03
知识储备
串口0波特率控制寄存器U0BAUD:
位 位名称 复位值 操作 描述
7:0 BAUD_M[7:0] 0x00 R/W 波特率小数部分的值。BAUD_E和 BAUD_M决定了UART的波特率和SPI的主SCK 时钟频率
03
知识储备
波特率计算公式如为:
式中,
为单片机的系统时钟频率,可取16MHz或32MHz,本任务的系统时钟频率为16MHz。
03
知识储备
标准波特率所需的寄存器值(系统时钟为16MHz情况下):
位 位名称 复位值
1200 59 6
2400 59 7
4800 59 8
7200 216 8
9600 59 9
14400 216 9
19200 59 10
28800 216 10
38400 59 11
57600 216 11
115200 216 12
03
知识储备
本任务设置的通信波特率为9600bps,具体配置代码如下:
U0GCR |= 9; //波特率选择
U0BAUD|= 59; //波特率选择
CC2530串口0发送过程
5
知识储备
03
CC2530串口0发送中断触发条件
6
7
8
串口0接收中断服务函数
CC2530与主机的连接及信号切换
03
知识储备
U0DBUF寄存器为串口0接收/发送数据缓冲寄存器,用于存放串口0接收和发送的数据。
虽然接收缓冲寄存器和发送缓冲寄存器的名字都为U0DBUF,但它们指的是不同的物理寄存器,因此接收过程和发送过程同时访问U0DBUF寄存器,不会发生冲突。
03
知识储备
串口0接收/发送数据缓冲寄存器U0DBUF:
位 位名称 复位值 操作 描述
7:0 DATA[7:0] 0x00 R/W 串口0用来接收和发送数据。当向这个寄存器写数据时,数据将被同步写入内部的发送移位数据寄存器;当读取该寄存器时,数据将来自内部的接收移位数据寄存器。
03
知识储备
CC2530将需要发送的一个字节数据写入U0DBUF寄存器,然后通过U0DBUF寄存器将数据送入发送移位寄存器,发送移位寄存器将8位数据以波特率速度通过TX引脚逐位发送出去。
03
知识储备
串口0发送数据原理:
03
知识储备
当发送移位寄存器的数据全部发送完毕,硬件会自动将IRCON2寄存器中的串口0发送中断标志位UTX0IF置1,可以通过中断方式或扫描方式判断数据是否发送完成。
CC2530串口0发送过程
5
知识储备
03
CC2530串口0发送中断触发条件
6
7
8
串口0接收中断服务函数
CC2530与主机的连接及信号切换
03
知识储备
(1)串口0发送中断标志位UTX0IF为1,表示串口0发送完一个字节数据。
(2)串口0发送中断使能(即UTX0IE=1)。
(3)总中断使能(即EA=1)。
03
知识储备
以上三个条件都满足的条件下,将会触发串口0发送中断。
当串口0发送完一个字节数据后,串口0发送中断标志位UTX0IF被硬件自动置“1”。
在串口0发送中断和总中断都使能的情况下,单片机执行串口0发送中断服务函数且硬件自动将串口0发送中断标志位UTX0IF置“0”。
03
知识储备
本任务采用中断方式判断串口0数据是否发送完成,串口0发送中断使能的具体配置代码如下:
UTX0IE = 1; //串口0发送中断使能
EA=1; //总中断使能
CC2530串口0发送过程
5
知识储备
03
CC2530串口0发送中断触发条件
6
7
8
串口0接收中断服务函数
CC2530与主机的连接及信号切换
03
知识储备
在串口0发送中断服务函数之前,通过宏指令“#pragma vector = 0x3B”或“#pragma vector = UTX0_VECTOR”将该中断函数指向串口0发送中断向量。因此,当串口0发送中断时,将会执行该中断服务函数。
03
知识储备
通过“__interrupt”关键字声明串口0接收中断服务函数,如“__interrupt void Uart0_ Transmit_Isr(void)”。进入串口0发送中断服务函数后,硬件会自动将串口0发送中断标志位UTX0IF清“0”,执行串口0发送完成的逻辑分析处理,可以把需要发送的下一字节数据写入U0DBUF寄存器中进行发送。
03
知识储备
本任务中,串口0发送完“0xAF”字节数据后,执行串口0发送中断服务函数,打开红色交通信号灯,具体配置代码如下:
1.#pragma vector = UTX0_VECTOR
2.__interrupt void UART0_Transmit_ISR(void)
3.{
4. LED_RED = 1; //打开D6红色LED
5.}
CC2530串口0发送过程
5
知识储备
03
CC2530串口0发送中断触发条件
6
7
8
串口0接收中断服务函数
CC2530与主机的连接及信号切换
03
知识储备
传统主机串行通信接口为RS232接口,无法与CC2530的串行接口直接建立连接,需要借助MAX232解决两者之间的信号差异。
(1)RS232接口
RS232接口采用负逻辑,规定(-15V ~-5V)信号电平表示逻辑1,(+5~+15V)信号电平表示逻辑0,有效地提高传输的抗干扰能力及增大通信传输距离。
03
知识储备
RS232接口通常为9针的D型插头,又称DB9接口。RS232电缆两端分为公头(DB9针式)和母头(DB9孔式)。注意,DB9接头中公头和母头的引脚排列顺序不同。
RS232接口:
03
知识储备
其中,2号引脚RXD(接收数据)、3号引脚TXD(发送数据)、5号引脚GND(接地)在通信中尤为重要,RS232接口只需3根电线即可收发数据。
03
知识储备
RS232接口引脚:
引脚编号 信号名 功能说明
1 +5V 外接5V辅助电源,可不用
2 RXD RS232信号接收
3 TXD RS232信号发送
4 DTR 数据终端准备好
5 GND 信号低
6 DSR 数据设备准备好
7 RTS 请求发送
8 CTS 允许发送
9 未用 不用
03
知识储备
(2)MAX232及主机与CC2530间的信号转换
CC2530的串口采用的是TTL电平,即+5V表示1,0V表示0,与RS232的电气特性不匹配,经该接口与主机通信时必须进行输入/输出电平转换。
03
知识储备
MAX232是美信(MAXIM)公司专为RS232标准串口设计的单电源电平转换芯片,内含一个电容性电压发生器。
MAX232的引脚T2IN、T2OUT实现单片机向主机的数据传送,引脚R2IN、R2OUT实现单片机从主机接收数据。
03
知识储备
单片机与主机建立的串行通信连接电路:
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.1 CC2530单片机串口发送数据
任务实施
04
● 任务实施前必须先准备好以下设备和资源:
序号 设备/资源名称 数量 是否准备到位(√)
1 计算机(已安装好IAR软件) 1台
2 NEWLab实训平台 1套
3 CC-Debugger 仿真器 1套
4 黑板 1块
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
●打开本书配套源代码文件夹中的“CC2530单片机串口发送数据.ewp”工程。
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
● 步骤1:头文件包含
04
任务实施
#include
● 步骤2:I/O引脚宏定义
04
任务实施
#define LED_RED P1_4 //将P1.4引脚宏定义为D6红色LED控制引脚
步骤3:编写串口初始化函数
1.void InitUART(void)
2.{
3. PERCFG = 0x00; //串口0通信引脚选择备用位置1
4. P0SEL |= 0x0C; //P0_2和P0_3引脚用作外设功能
5. P2DIR &= ~0xC0; //外设多功能复用引脚串口0优先级最高
6. U0CSR |= 0x80; //选择串口UART异步通信模式
7. U0GCR |= 9; //设置通信波特率为9600
8. U0BAUD |= 59; //设置通信波特率为9600
9. U0UCR |= 0x02; //配置起始位低电平、停止位高电平、8位数据通信、无奇偶校验
10. UTX0IF=0; //发送中断标志位UTX0IF清零
11.}
04
任务实施
04
任务实施
串口0初始化函数主要完成以下几项任务:
(1) 设置PERCFG寄存器进行备用位置选择。
(2) 设置P0SEL寄存器,将P0_2和P0_3两个I/O口配置作为外设功能。
(3) 设置P0SEL寄存器进行多功能复用引脚优先级配置,串口0的优先级设置为最高。
(4) 设置U0CSR寄存器,选择UART异步通信模式。
(5) 设置U0GCR寄存器和U0BAUD寄存器选择通信波特率9600bps。
(6) 设置U0UCR寄存器进行数据帧格式配置。
(7) 将发送中断标志位清0。
步骤4:编写串口0发送中断服务函数
04
任务实施
1.#pragma vector = UTX0_VECTOR
2.__interrupt void UART0_Transmit_ISR(void)
3.{
4. LED_RED = 1; //打开D6红色LED
5.}
04
任务实施
当串口0发送完一个字节数据后,串口0发送中断标志位UTX0IF被硬件自动置1,在串口0发送中断和总中断都使能的情况下,单片机将会执行串口0发送中断服务函数,同时硬件自动将串口0发送中断标志位清0。在串口0发送中断服务函数中,将黑板上的D6红色LED打开。
步骤5:编写main主函数
04
任务实施
1.void main()
2.{
3. InitIO(); // I/O口初始化
4. InitUART(); //串口初始化
5. UTX0IF = 0; //发送之前,一般会将发送完成标志置0
6. U0DBUF = 0xAF; //将16进制数 0xAF写入U0DBUF寄存器
7. while( UTX0IF==0 ); //判断数据是否发送完成,未完成继续等待
8. UTX0IF=0; //UTX0IF置0,为下次发送做准备
9. RED_LED=1; //点亮红色交通信号灯
10. while(1);
11. }
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
仿真调试
对工程进行编译,观察是否提示编译成功。如果出现错误或警告,需要认真检查修改,重新编译链接,直到没有错误和警告为止。
04
任务实施
1
2
任务实施
04
打开工程
编写代码
3
编译工程
4
下载代码
(1)用CC-Debugger仿真器的下载线连接黑板;
(2)完成代码下载;
(3)黑板上电,观察PC机上串口调试助手是否接收到0xAF数据,同时板上的D6红色LED打开。
04
任务实施
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.1 CC2530单片机串口发送数据
05
任务工单
(一)本次任务关键知识引导
1.计算机与外界的信息交换称为通信,通信的基本方式可以分为( )和( )两种。
2.串行通信是指数据的各位在同一根数据线上( )发送或接收;并行通信是指( )同时在多根数据线上发送与接收。
3.CC2530提供( )和( )两个串行通信接口,它们能分别运行于( )通信模式或( )通信模式。
4.异步UART通信数据帧由( )、( )、( )和( )组成,其中( )通常为可选的,( )通常为低电平,( )通常为高电平,( )通常为8位。
5.串口0的波特率由U0GCR寄存器的( )、U0BAUD寄存器的( )以及( )共同决定。
6.CC2530在串口0发送过程中,当发送移位寄存器的数据全部发送完毕,硬件会自动将IRCON2寄存器中的串口0发送中断标志位( )置( ),可以通过( )或( )判断数据是否发送完成。
任务工单
05
各组选派代表分析本组任务实施经验;
01
添加标题
请参照评价标准完成自评;
02
完成对其他小组的评价。
03
互评
经验分享
自评
评价方式 可采用自评、互评、老师评价等方式 说明 主要评价学生在项目学习过程中的操作技能、理论知识、学习态度、课堂表现、学习能力等。 序号 评价内容 评价标准 分值 得分
1 知识运用(20%) 掌握相关理论知识,完成本次任务关键知识的作答准确率(20分) 20分
2 专业技能(40%) 工程编译通过,串口调试助手数据接收正常。(40分) 40分
工程编译通过,串口调试助手数据接收异常。(30分)
完成代码的输入,工程没有编译通过。(15分)
建立工程错误,或者部分输入代码。(5分)
3 核心素养(20%) 具有良好的自主学习、分析解决问题、帮助他人的能力、整个任务过程中有指导他人并解决他人问题(20分) 20分
具有较好的学习能力和分析解决问题的能力,任务过程中无指导他人(15分)
具有主动学习并收集信息的能力,遇到问题有请教他人并得以解决(10分)
不主动学习(0分)
4 职业素养(20%) 实验完成后,设备无损坏、设备摆放整齐、工位区域内保持整洁、无干扰课堂秩序(20分) 20分
实验完成后,设备无损坏、无干扰课堂秩序(15分)
无干扰课堂秩序(10分)
干扰课堂秩序(0分)
总得分
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸阅读
08
4.1 CC2530单片机串口发送数据
任务小结
06
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸练习
08
4.1 CC2530单片机串口发送数据
任务拓展
07
动动脑
请思考下并行通信与串行通信的优缺点。
任务拓展
07
动动手
请在本任务的基础上进行修改,将CC2530单片机发送的数据改为0xCF,观察PC机上的串口调试助手是否接收到十六进制数0xCF。
学习目标
01
知识储备
03
任务工单
05
任务要求与任务分析
02
任务实施
04
任务小结
06
知识与技能提升
07
延伸练习
08
4.1 串口发送数据
延伸练习
08
请在本任务代码基础上进行修改,实现单片机每秒发送一个字节数据0xAF至PC机。

展开更多......

收起↑

资源预览