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

哪个网站是做红酒酒的请人做网站收费

哪个网站是做红酒酒的,请人做网站收费,微商城 微网站制作,文字代码生成器以下内容源于朱有鹏嵌入式课程的学习与整理#xff0c;如有侵权请告知删除。 参考博客#xff1a;s5pv210——串口通信 - biaohc - 博客园 一、代码与测试 1、代码文件 完整的案例文件见链接。 #xff08;1#xff09;start.S文件 /* * 演示串口通信 */#define WTCON …以下内容源于朱有鹏嵌入式课程的学习与整理如有侵权请告知删除。 参考博客s5pv210——串口通信 - biaohc - 博客园 一、代码与测试 1、代码文件 完整的案例文件见链接。 1start.S文件 /* * 演示串口通信 */#define WTCON 0xE2700000 #define SVC_STACK 0xd0037d80.global _start _start:// 第1步关看门狗ldr r0, WTCONldr r1, 0x0str r1, [r0]// 第2步初始化时钟bl clock_init //这个函数见时钟系统部分这里不列出// 第3步设置SVC栈ldr sp, SVC_STACK// 第4步开/关icachemrc p15,0,r0,c1,c0,0; // 读出cp15的c1到r0中//bic r0, r0, #(112) // bit12 置0 关icacheorr r0, r0, #(112) // bit12 置1 开icachemcr p15,0,r0,c1,c0,0;bl main// 汇编代码最后的这个死循环不能丢b . 2main函数所在的main.c文件 void main(void) {uart_init(); while(1){uart_putc(a);delay();} } 3uart_init()函数所在的uart.c文件 #define GPA0CON 0xE0200000 #define UCON0 0xE2900004 #define ULCON0 0xE2900000 #define UMCON0 0xE290000C #define UFCON0 0xE2900008 #define UBRDIV0 0xE2900028 #define UDIVSLOT0 0xE290002C #define UTRSTAT0 0xE2900010 #define UTXH0 0xE2900020 #define URXH0 0xE2900024 #define rGPA0CON (*(volatile unsigned int *)GPA0CON) #define rUCON0 (*(volatile unsigned int *)UCON0) #define rULCON0 (*(volatile unsigned int *)ULCON0) #define rUMCON0 (*(volatile unsigned int *)UMCON0) #define rUFCON0 (*(volatile unsigned int *)UFCON0) #define rUBRDIV0 (*(volatile unsigned int *)UBRDIV0) #define rUDIVSLOT0 (*(volatile unsigned int *)UDIVSLOT0) #define rUTRSTAT0 (*(volatile unsigned int *)UTRSTAT0) #define rUTXH0 (*(volatile unsigned int *)UTXH0) #define rURXH0 (*(volatile unsigned int *)URXH0)// 串口初始化程序 void uart_init(void) {// 1、初始化Tx Rx对应的GPIO引脚rGPA0CON ~(0xff0); // 把寄存器的bit07全部清零rGPA0CON | 0x00000022; // 0b0010, Rx Tx// 2、几个关键寄存器的设置rULCON0 0x3;rUCON0 0x5;rUMCON0 0;rUFCON0 0;// 3、设置波特率// 波特率设置公式DIV_VAL PCLK / (bps x 16) - 1 // 其中PCLK_PSYS 66.7bps表示想设置的波特率// DIV_VAL 66700000/(115200*16) - 1 35.18// 整数部分是35小数部分是0.18//整数部分是35rUBRDIV0 35; // (rUDIVSLOT中的1的个数)/16上一步计算的余数0.18// (rUDIVSLOT中的1的个数 16*0.18 2.88 3// 3个1查官方推荐表得到这个数字0x0888rUDIVSLOT0 0x0888; }// 串口发送程序发送一个字节 void uart_putc(char c) { // 串口发送一个字符其实就是把一个字节丢到发送缓冲区中去// 因为串口控制器发送1个字节的速度远远低于CPU的速度所以CPU发送1个字节前必须// 确认串口控制器当前缓冲区是空的意思就是串口已经发完了上一个字节// 如果缓冲区非空则位为0此时应该循环直到位为1while (!(rUTRSTAT0 (11))); //rUTRSTAT0的bit[1]表示是否发完为1则发完rUTXH0 c; }// 串口接收程序轮询方式接收一个字节 char uart_getc(void) { //rUTRSTAT0的bit[0]表示是否接收完成为1则接收完while (!(rUTRSTAT0 (10)));return (rURXH0 0x0f);//这里应该是 return (rURXH0 0xff) } 2、测试验证 1在linux中完成代码的编译 编译得到的210.bin是SD卡启动的镜像文件uart.bin是usb启动的镜像文件。 rootubuntu:/home/xjh/iot/embedded_basic/linux_basic/uart_c# ls clock.c led.c main.c Makefile mkv210_image.c start.S uart.c write2sd rootubuntu:/home/xjh/iot/embedded_basic/linux_basic/uart_c# make //省略编译时的输出 rootubuntu:/home/xjh/iot/embedded_basic/linux_basic/uart_c# ls 210.bin led.c main.o mkx210 uart.bin uart_elf.dis clock.c led.o Makefile start.o uart.c uart.o clock.o main.c mkv210_image.c start.S uart.elf write2sd rootubuntu:/home/xjh/iot/embedded_basic/linux_basic/uart_c# 2将镜像文件下载到开发板 为了简单起见这里选择usb启动方式过程参考在X210开发板上进行裸机开发的流程。 注意检查dnw是否已经正常工作每次开机前好像都要设置禁止数字签名驱动才正常。 3在SCRT中观察现象 注意这里程序使用的是uart0也就是靠近网口的那个串口因此务必将串口线插到这个串口 其实也可以修改代码使用另外一个串口在SCRT设置正确前提下可以看到SCRT界面不断输出“aaaaaaa……” 二、串口初始化代码分析 1、初始化串口的Tx和Rx引脚所对应的GPIO 由X210开发板的原理图可知Rx和Tx分别对应GPA0_0和GPA0_1。 GPA0是一个IO端口包含8个IO口每个IO口分别记作GPA0_0GPA0_1…GPA0_7。对于每个IO端口都有对应的一个端口控制寄存器这个端口控制寄存器是32bit的每4bit控制着一个IO口的模式。与GPAO端口对应的端口控制寄存器叫做GPA0CON寄存器该寄存器的设置说明如下。 从中可以看出只要将GPA0CON寄存器设置为bit[3:0] 0b0010bit[7:4] 0b0010即可把引脚设置为串口的作用状态。 // 初始化Tx Rx对应的GPIO引脚 rGPA0CON ~(0xff0); // 把寄存器的bit07全部清零 rGPA0CON | 0x00000022; // 0b0010 2 2、初始化关键寄存器 关键的寄存器有ULCON0、UCON0、UMCON0、UFCON0、UBRDIV0、UDIVSLOT0。 这里红色的数字是0是因为我们使用的是uart0如果换成其他uart则要修改。 其中UBRDIV0和UDIVSLOT0和波特率有关要根据公式去计算。 而前面四个寄存器的设置及其含义如下 // 几个关键寄存器的设置 rULCON0 0x3; // 0b0011其含义是0校验位、8数据位、1停止位 rUCON0 0x5; // 0b0101其含义是发送和接收都是polling mode rUMCON0 0; // 0b0000其含义是禁止modem、afc rUFCON0 0; // 0b0000其含义是禁止FIFO模式 1ULCONn寄存器设置为0x30b0011 设置红外模式0普通模式1红外模式设置奇偶校验模式设置终止位0则1位1则2位设置字长5至8bit 2UCONn寄存器设置为0x50b0101 设置时钟选择0表示PCLK_PSYS1表示SCLK_UART我们设置为0。设置发送模式轮询/中断设置接收模式轮询/中断 3UMCONn寄存器设置为0x0 设置禁止AFC、modem 4UFCONn寄存器设置为0x0  主要用来设置禁止FIFO。 5UTRSTATn寄存器 它是状态寄存器通过读取这个寄存器可以得知发生与接收情况。Transmitter empty 移位器和发送缓冲寄存器是否有可用数据发送0则非空1则空。Transmitter buffer empty 发送缓冲寄存器0则非空1则空。Recieve buffer empty 接收缓冲寄存器0则非空1则空。 6UBRDIV0、UDIVSLOT0寄存器 这两个寄存器和波特率设置有关。波特率设置方法DIV_VAL 1 (PCLK / (bps x 16)) 这里的bps表示想要设置的波特率大小PCLK是66.7MHz。DIV_VAL的整数部分就是寄存器UBRDIVn中的值而小数部分乘以16得到的值向上取整得到的整数则是UDIVSLOTn中1的个数然后根据下面的表格来设置UDIVSLOTn寄存器的值。如66.7MHz/(115200*16) 36.187则UBRDIVn中的值就是36-135而0.187*162.992 则UDIVSLOTn中1的个数为3个则根据下面表格UDIVSLOTn寄存器的值应该写入0x0888。 7UTXHn寄存器、URXHn寄存器 这两个寄存器就是发送缓冲区、接收缓冲区。
http://www.zqtcl.cn/news/973943/

相关文章:

  • 二级学院网站建设自评报告最简单网页制作软件
  • 不开网店怎么做淘宝网站建设部网站江苏金安
  • 厦门做网站最好的公司汽车之家官网首页网页
  • 企业网站seo价格免费的网站模版下载
  • 做推广用那个网站吗百度小程序有什么用
  • 上海优质网站seo有哪些wordpress点击阅读全部
  • 企业网站建设中企动力网站制作电话多少
  • 做电影网站怎么接广告官网如何做广告推广
  • 网站建设试卷摄影wordpress网站托管
  • 西安专业网站排名优化一站式建站价格
  • 做项目的编程网站网站建设范文
  • 阿里云备案 网站备案现在办宽带多少钱一年
  • 东莞网站建设公司哪家好和黄crm在线
  • 邢台外贸网站建设怎么在抖音上卖东西
  • 光泽县规划建设局网站番禺做哪些做网站的
  • 海南响应式网站建设哪里好衡水哪儿做wap网站
  • 月熊志网站百度网页版
  • 三亚网站建设方案鱼爪商标交易平台
  • phpwind 手机网站模板建立网站的英文短语
  • 年度网站建设工作总结制作微信小程序需要什么技术
  • wordpress打字不显示图片wordpress 访问优化
  • 太原网站建设方案咨询网站开发公司的选择
  • 广西网站建设设计大连嘉良建设有限公司网站
  • 白名单查询网站网站建设改变某个表格大小
  • 青岛网站开发公司电话百度投放
  • 唐山玉田孤树做宣传上什么网站百度推广有效果吗
  • 亚马逊网站特点佛山营销型网页设计
  • 网站建设 长沙开福区做百度移动网站排名软
  • 广州购物网站建设在线解压网站
  • 网站建设教学方法探究购物网站开发中查看订单的实现逻辑