当前位置: 首页 > news >正文

app网站模板商城网站微信支付接口申请

app网站模板,商城网站微信支付接口申请,移动端关键词优化,微信公众号平台官网目录 1 UART帧格式详解 1.1 UART简介 1.2 通信基础 - 并行和串行 1.3 通信基础 - 单工和双工 1.4 通信基础 - 波特率 1.5 UART帧格式 2 Exynos4412下的UART控制器 2.1 引脚功能设置 2.2 阅读芯片手册 3 UART寄存器详解 3.1 引脚寄存器 3.2 串口寄存器概览 3.3 ULC…目录 1 UART帧格式详解 1.1 UART简介 1.2 通信基础 - 并行和串行 1.3 通信基础 - 单工和双工 1.4 通信基础 - 波特率  1.5 UART帧格式 2 Exynos4412下的UART控制器 2.1 引脚功能设置 2.2 阅读芯片手册 3 UART寄存器详解 3.1 引脚寄存器 3.2 串口寄存器概览 3.3 ULCONn帧格式  ​编辑 3.4 UCONn控制寄存器串口模式轮询、中断、DMA 3.5 状态寄存器  3.6 接收数据发送数据的寄存器  3.7 设置波特率 4 UART编程 4.1 interface.c实验代码 4.2 printf重定向 4.3 练习 1 UART帧格式详解 1.1 UART简介 Universal Asynchronous Receiver Transmitter 即     通用异步收发器是一种通用的串行、异步通信总线     该总线有两条数据线可以实现全双工的发送和接收     在嵌入式系统中常用于主机与辅助设备之间的通信 1.2 通信基础 - 并行和串行 并行通讯多个数据线一起发送 串行通信一个个字节发送 1.3 通信基础 - 单工和双工 半双工要不能同时发送和接收全双工可以同时发送和接收。 1.4 通信基础 - 波特率  波特率用于描述UART通信时的通信速度其单位为bps(bit per second)即每秒钟传送的bit的数量 1.5 UART帧格式 串口协议中规定先发低位再发高位 例数据0x55 二进制01010101-发送顺序10101010 校验位很少使用多发了一位数据会使得通讯速度变慢 如果发送多个字节重复上面的动作必须一个一个字节发送附带停止位和起始位否则发送0xFF这种数据全是高电平无法得知是发送了还是没发送。 串口发送的速率是根据自身的时钟速率掐时间计算。如A主机发送速率1s1个但是接收方可能接收的数据对于A来说是0.9S1个时间一长数据会乱。所以一般规定每次最多发8位之后重新获取起始位避免误差增大。 2 Exynos4412下的UART控制器 一般情况下处理器中都会集成UART控制器 我们使用UART进行通信时候只需对其内部的相 关寄存器进行设置即可 2.1 引脚功能设置 查看扩展板原理图 SP3232EEA芯片的作用是把串口发出来的TTL信号转换成232信号增加了串口的通讯距离 查看核心板原理图  2.2 阅读芯片手册 芯片手册4412一共包含了5个串口通道包含一个可以与GPS通讯的Ch4。串口控制器的时钟是100Mhz支持DMA串口中断每个串口包含FIFO。 功能框图 总线是CPU与串口芯片相连发送、接收及访问控制单元。 红外GPS暂不详细介绍 3 UART寄存器详解 3.1 引脚寄存器 3.2 串口寄存器概览 5个串口寄存器内部是一样的使用串口2基地址0x1382_0000 3.3 ULCONn帧格式  3.4 UCONn控制寄存器串口模式轮询、中断、DMA 接收串口数据一般有3种方式 1.轮询定期CPU去访问FIFO 2.中断有数据来了通知CPU去读取 3.DMA有数据来了直接由DMA搬到内存中不需要CPU去干涉 3.5 状态寄存器  状态寄存器中一般为只读寄存器可用于判断串口接收发送的状态 3.6 接收数据发送数据的寄存器  3.7 设置波特率 波特率公式案例用的时钟频率是40Mhz我们开发板的串口时钟寄存器是100Mhz UBRDIVn 20整数部分 UFRACVAL 0.7小数部分*16 ≈ 11四舍五入因为串口按位发送会校准所以可以忽略 4 UART编程 引脚寄存器 帧格式  接收和发送模式为轮询  100000000/115200 *16)-1 ≈ 53.25 UBDIV2 取整 53 UFRAVVAL2 0.25 * 16 4 4.1 interface.c实验代码 #include exynos_4412.hvoid UART_Init(void) {/*1.将GPA1_0和GPA1_1设置成UART2的接收和发送引脚 GPA1CON[7:0]*/GPA1.CON GPA1.CON (~(0xFF 0)) | (0x22 0);/*2.设置UART2的帧格式 8位数据位 1位停止位 无校验 正常模式 ULCON2[6:0]*/UART2.ULCON2 UART2.ULCON2 (~(0x7F 0)) | (0x3 0);/*3.设置UART2的接收和发送模式为轮询模式 UCON2[3:0]*/UART2.UCON2 UART2.UCON2 (~(0xF 0)) | (0x5 0);/*4.设置UART2的波特率为115200 UBRDIV2/UFRACVAL2*/UART2.UBRDIV2 53;UART2.UFRACVAL2 4; }void UART_Send_Byte(char Dat) {/*等待发送寄存器为空即上一个数据已经发送完成 UTRSTAT2[1]*/while(!(UART2.UTRSTAT2 (1 1)));/*将要发送的数据写入发送寄存器 UTXH2*/UART2.UTXH2 Dat; }char UART_Rec_Byte(void) {char Dat 0;/*判断接收寄存器是否接收到了数据 UTRSTAT2[0]*/if(UART2.UTRSTAT2 1){/*从接收寄存器中读取接收到的数据 URXH2*/Dat UART2.URXH2;return Dat;}else{return 0;} }void UART_Send_Str(char * pstr) {while(*pstr ! \0)UART_Send_Byte(*pstr); }int main() {char RecDat 0;UART_Init();while(1){RecDat UART_Rec_Byte();if(RecDat 0){}else{RecDat RecDat 1;UART_Send_Byte(RecDat);}UART_Send_Str(Hello World\n);//重定向的printfprintf(Hello World\n);}return 0; }注 寄存器只能显示字符无法显示数字如果需要发送和接收数字要转换为对应的字符的ASCII码  如果CPU写入的速度过快超过串口发送器发送的速度会使得接收端的数据错乱。需要对发送状态寄存器进行判断后进行发送和接收。 4.2 printf重定向 printf的功能实现已经再src中实现了函数比较复杂不做详细介绍 printf调用了putsputs内部调用了putc我们修改了putc的程序实现了重定向 定向功能在uart.c中实现。 printf的区别 1来源:没有操作系统在printf.c中而有操作系统是调用的C库的区别 2输出定向不一样:重定向输出到串口输出到linux终端 4.3 练习 1.若使用UART协议发送一个字节的数据0x63画出信号线上的时序图 注8位数据位、无校验位、一位停止位 略 2.编程实现电脑远程控制LED状态 注在终端上输入‘2’LED2点亮再次输入‘2’LED2熄灭... ... #include exynos_4412.hvoid LED_Init(void) {GPX2.CON GPX2.CON (~(0xF 28)) | (0x1 28); //LED2 GPX2_7 output//GPX1.CON GPX1.CON (~0xF) | 0x1; //LED3 GPX1_0 output//GPF3.CON GPF3.CON (~(0xF 16)) | (0x1 16); //LED4 GPF3_4 output//GPF3.CON GPF3.CON (~(0xF 20)) | (0x1 20); //LED5 GPF3_5 output }void Led_on(int num){switch(num){case 2:GPX2.DAT GPX2.DAT | (1 7);case 3:GPX1.DAT GPX1.DAT | (1 0);case 4:GPF3.DAT GPF3.DAT | (1 4);case 5:GPF3.DAT GPF3.DAT | (1 5);default:break;}}void Led_off(int num){switch(num){case 2:GPX2.DAT GPX2.DAT ~(1 7);case 3:GPX1.DAT GPX1.DAT ~(1 0);case 4:GPF3.DAT GPF3.DAT ~(1 4);case 5:GPF3.DAT GPF3.DAT ~(1 5);default:break;}}void UART_Init(void) {/*1.将GPA1_0和GPA1_1设置成UART2的接收和发送引脚 GPA1CON[7:0]*/GPA1.CON GPA1.CON (~(0xFF 0)) | (0x22 0);/*2.设置UART2的帧格式 8位数据位 1位停止位 无校验 正常模式 ULCON2[6:0]*/UART2.ULCON2 UART2.ULCON2 (~(0x7F 0)) | (0x3 0);/*3.设置UART2的接收和发送模式为轮询模式 UCON2[3:0]*/UART2.UCON2 UART2.UCON2 (~(0xF 0)) | (0x5 0);/*4.设置UART2的波特率为115200 UBRDIV2/UFRACVAL2*/UART2.UBRDIV2 53;UART2.UFRACVAL2 4; }void UART_Send_Byte(char Dat) {/*等待发送寄存器为空即上一个数据已经发送完成 UTRSTAT2[1]*/while(!(UART2.UTRSTAT2 (1 1)));/*将要发送的数据写入发送寄存器 UTXH2*/UART2.UTXH2 Dat; }char UART_Rec_Byte(void) {char Dat 0;/*判断接收寄存器是否接收到了数据 UTRSTAT2[0]*/if(UART2.UTRSTAT2 1){/*从接收寄存器中读取接收到的数据 URXH2*/Dat UART2.URXH2;return Dat;}else{return 0;} }void UART_Send_Str(char * pstr) {while(*pstr ! \0)UART_Send_Byte(*pstr); }int main() {char RecDat 0;int toggle 0;UART_Init();LED_Init();while(1){RecDat UART_Rec_Byte();if(RecDat 2){if(toggle 0){Led_on(2);toggle 1;}else{Led_off(2);toggle 0;}}/*UART_Send_Str(Hello World\n);*/}return 0; }
http://www.hkea.cn/news/14520753/

相关文章:

  • 高港区企业网站建设网站建设及维护成本
  • 华仁建设网站建立自己公司网站的方法
  • 大连建设执业资格注册中心网站阿里云空间做网站
  • 网站如何做关键词seo优化网站建设栏目规划
  • 做软件下载网站重庆网站制作团队
  • 视频网站dedecmswordpress次元主题
  • dede无法一键更新网站东营网官网
  • 专业网站优化培训怎么做自己的代刷网站
  • 学院评估 网站建设整改网站系统管理
  • 专做定制的网站2020国内搜索引擎排行榜
  • 优化网站公司外包建筑工程信息网站
  • 西安模板建站网站深圳建材公司app
  • 网站导航栏怎么做简单科技成果鉴定机构
  • 郑州建站费用十堰seo优化
  • 外贸网站建设及优化ppt灰色项目源码
  • 新手怎么优化网站wordpress忘記密碼
  • 网站开发不用框架?2017做电商做什么网站
  • 做付费网站好同个主体新增网站备案
  • 桂林象鼻山的传说东莞seo推广公司
  • 常见的网站推广方式有哪些想自学做网站
  • discuz网站模板鞍山招聘信息最新招聘
  • 电子商务网站的建设过程织梦网站tag怎么做
  • 湖北省两学一做网站婚庆 wordpress
  • 张家港市网站制作游戏开发公司哪家好
  • wordpress 社区模版石家庄网络seo推广
  • 自己做的网站打开慢wordpress 文章列表 分页
  • 服装公司网站背景图电商具体是做什么的上班
  • 南阳做网站多少电话wordpress加密修改
  • dedecms做网站视频建设网站的基本工作流程
  • 有做不锈钢工程的网站丹阳网站建设报价