2022年串口通信主机程序与从机程序 .pdf

上传人:C****o 文档编号:33395702 上传时间:2022-08-10 格式:PDF 页数:9 大小:48.34KB
返回 下载 相关 举报
2022年串口通信主机程序与从机程序 .pdf_第1页
第1页 / 共9页
2022年串口通信主机程序与从机程序 .pdf_第2页
第2页 / 共9页
点击查看更多>>
资源描述

《2022年串口通信主机程序与从机程序 .pdf》由会员分享,可在线阅读,更多相关《2022年串口通信主机程序与从机程序 .pdf(9页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、串口通信主机程序与从机程序串口通信主机程序:#include "config.h" #define UART_BPS 115200 / 定义通讯波特率uint8 const SEND_STRING = "Hello World!" /* * 名称:DelayNS() * 功能:长软件延时* 入口参数: dly 延时参数,值越大,延时越久* 出口参数:无*/ void DelayNS(uint32 dly) uint32 i; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 -

2、 - - - - - - 第 1 页,共 9 页 - - - - - - - - - for(; dly>0; dly-) for(i=0; i<5000; i+); /* * 名称:UART0_Ini() * 功能:初始化串口0。设置为 8 位数据位, 1 位停止位,无奇偶校验,波特率为115200 * 入口参数:无* 出口参数:无*/ void UART0_Init(void) uint16 Fdiv; U0LCR = 0 x83; / DLAB = 1,可设置波特率Fdiv = (Fpclk / 16) / UART_BPS; / 设置波特率名师资料总结 - - -精品资料欢

3、迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 2 页,共 9 页 - - - - - - - - - U0DLM = Fdiv / 256; U0DLL = Fdiv % 256; U0LCR = 0 x03; /* * 名称:UART0_SendByte() * 功能:向串口发送字节数据,并等待发送完毕。* 入口参数: data 要发送的数据* 出口参数:无*/ void UART0_SendByte(uint8 data) U0THR = data; / 发送数据while( (U0LSR&0 x40)

4、=0 ); / 等待数据发送完毕 /* * 名称:UART0_SendStr() 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 3 页,共 9 页 - - - - - - - - - * 功能:向串口发送一字符串* 入口参数: srt 要发送的字符串的指针* 出口参数:无*/ void UART0_SendStr(uint8 const *str) while(1) if( *str = '0' ) break; UART0_SendByte(*str+); / 发

5、送数据 /* * 名称:main() * 功能:向串口 UART0发送字符串 "Hello World!" */ int main(void) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 4 页,共 9 页 - - - - - - - - - PINSEL0 = 0 x00000005; / 设置 I/O 连接到 UART0 UART0_Init(); UART0_SendByte('Y'); if( 0 x04=(U0IIR&0 x0

6、F) ) rcv_new = 1; while(U0RBR!='Y'); while(1) UART0_SendStr(SEND_STRING); DelayNS(10); if( 0 x04=(U0IIR&0 x0F) ) rcv_new = 1; while(U0RBR!='T'); return(0); 从机程序#include "config.h" #include "strings.h" 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师

7、精心整理 - - - - - - - 第 5 页,共 9 页 - - - - - - - - - uint8 rcv_buf13; / UART0数据接收缓冲区uint8 strings=''Hello World!" volatile uint8 rcv_new; / 接收新数据标志/* * * 名称:Rev_UART0() * 功能:串口 UART0接收。* 入口参数:无* 出口参数:无*/ void Rev_UART0(void) uint8 i; if( 0 x04=(U0IIR&0 x0F) ) rcv_new = 1; / 设置接收到新的数据标名师

8、资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 6 页,共 9 页 - - - - - - - - - 志for(i=0; i<13; i+) rcv_bufi = U0RBR; / 读取数据 /* * 名称:SendByte() * 功能:向串口 UART0发送字节数据。* 入口参数: data 要发送的数据* 出口参数:无*/ void SendByte(uint8 data) U0THR = data; / 发送数据 /* * 名称:UART0_Ini() 名师资料总结 -

9、- -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 7 页,共 9 页 - - - - - - - - - * 功能:初始化串口0。设置为 8 位数据位, 1 位停止位,无奇偶校验,波特率为115200 * 入口参数:无* 出口参数:无*/ void UART0_Init(void) uint16 Fdiv; U0LCR = 0 x83; / DLAB = 1,可设置波特率Fdiv = (Fpclk / 16) / UART_BPS; / 设置波特率U0DLM = Fdiv / 256; U0DLL =

10、Fdiv % 256; U0LCR = 0 x03; main(void) PINSEL0 = 0 x00000005; / 设置 I/O 连接到 UART0 UART0_Init(); while( 0 x04=(U0IIR&0 x0F) ) 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 8 页,共 9 页 - - - - - - - - - if(U0RBR='Y') UART0_SendByte('Y'); else UART0_SendByte('N'); while(1) Rev_UART0(); if(strcmp(strings,rcv_buf) UART0_SendByte('T'); else UART0_SendByte('F'); rcv_buf=0; 名师资料总结 - - -精品资料欢迎下载 - - - - - - - - - - - - - - - - - - 名师精心整理 - - - - - - - 第 9 页,共 9 页 - - - - - - - - -

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 教育专区 > 高考资料

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁