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

门户网站建站流程司法公开网站建设情况汇报

门户网站建站流程,司法公开网站建设情况汇报,智慧团建网站维护什么时候结束,进入淘宝网官网首页电脑版目录 1.串口与PC通信的接线芯片与芯片之间的通讯#xff1a;芯片与电脑之间的通讯#xff1a; 2.利用实验箱示例代码移植驱动程序3.串口通信实战最小工程代码移植编译提示错误#xff1a;undefined identifier 1.串口与PC通信的接线 上节试验是串口和电脑进行一个通信… 目录 1.串口与PC通信的接线芯片与芯片之间的通讯芯片与电脑之间的通讯 2.利用实验箱示例代码移植驱动程序3.串口通信实战最小工程代码移植编译提示错误undefined identifier 1.串口与PC通信的接线 上节试验是串口和电脑进行一个通信用了一根USB转232的线直接插到了我们这个板子上。今天详细解释一下是怎么样接线。 每一个TD和一个RXD代表一组端口就是一组串口。 看DIP40的管脚功能图 TXD_几和RXD_几表示这是该组串口的第几个通道1是默认省略的。通道是分时打开也叫分时复用。 MCU串口出来的信号都是TTL电平。 TTL电平信号规定5V等价于逻辑“1”0V等价于逻辑“0”(采用二进制来表示数据时)。这样的数据通信及电平规定方式被称做TTL晶体管-晶体管逻辑电平信号系统。 芯片与芯片之间的通讯 如果通信协议和电平都一样直接TX和RX链接就可以通信。 芯片与电脑之间的通讯 电脑没有TXD跟RXD的这个接口以前的电脑有232接口) 串口能直接和电脑USB通信吗不能直接通信因为电脑没有串口。需借助USB转TTL的工具。 它中间用了颗芯片去做电平的转化或者协议的转化芯片常见的有CH340、CP2102电脑还需要另外的去装驱动。 推荐使用如上的官方工具。 程序无需任何处理,抗干扰能力更强 一个USB工具可以转2个串口代替2个。 四个端子分别是接到了P47、P50、P46、P51。 再看看USB转TTL的模块学名是一箭双雕之USB转双串口。需要根据官方介绍刷成USB转双串口的功能。占用1个usb口2路串口输出。 S-RXD是STC-CDC1串口的发送脚连接其它串口的接收脚。S-TXD是STC-CDC1串口的接收脚。连接其它串口的发送脚。 S-RXD本质上是TX,S-TXD本质上是RX,这么标注是为了方便用户接线。 一般使用同一组串口。一箭双雕还有OLED接口4个led的流水灯等等。 USB转232通讯线。板载232端口DB9母头和电平转换电路。考虑到传输距离和抗干扰性的问题中间就可以考虑使用TTL转232,相互去转化。 TTL转232程序上无需任何处理但抗干扰能力增强。实际项目中如果距离有一定要求可以采用此方式。甚至485422。只要逻辑电平能对得上就可以互相连接。 2.利用实验箱示例代码移植驱动程序 1查找试验箱里面和我们的功能最接近的程序。如11-串口2中断模式与电脑收发测试 上节课也用串口2是根据手册编写的代码后期一定要灵活运用程序包。官方提供的程序包里面官方都已经测试好了不用去熟悉每一个寄存器只要按照代码包里的寄存器配好就可以使用了。 代码包里每一个试验都已经做到了最简单不用从几万行代码里去扣出几十行几百行你有用的代码每一个小实验对应一个功能。本节讲串口2可以直接移植例程。 2先测试示例程序是否正常运行。 一定先试验测试再移植。 3分析哪些代码与我们的功能有用。 只移植对我们有用的东西。 4新建文件开始移植。 尽量避免大部分无用的手敲只需要学会怎么去移植就可以。 3.串口通信实战 打开待参考的11-串口2中断模式与电脑收发测试代码包C语言再将上一节的16.串口2通信复制并更名为17.串口PC通信打开工程在其基础上进行移植。 同时打开以上2个工程屏幕右边方示例代码左边打开我们要需要的工程。 先从主函数开始看提升指令速度等原工程里都有见sys_init()明显不需要设为准双向口。 选择波特率这行初始化没有应该有用选中这行并复制到新工程内示例模板里是放在端口初始化之后我们也放在sys_init()初始化之后。 最小工程 把工程里不必要的东西清理一下,保留最小工程如 #include COMM/stc.h //调用头文件 #include COMM/usb.h #include seg_led.h #include key.h #include beep.h #include tim0.h #include exit.h #include adc.h #include ntc.h #include usart2.hchar *USER_DEVICEDESC NULL; char *USER_PRODUCTDESC NULL; char *USER_STCISPCMD STCISP#;bit TIM_10MS_Flag; //10ms的标志位 u16 Tme_CountDown 0; //全局变量void sys_init(); //函数声明 void delay_ms(u16 ms); //unsigned intvoid main() //程序开始运行的入口 {sys_init(); //USB功能IO口初始化UART2_config(2); // 选择波特率, 2: 使用Timer2做波特率, 1其它值: 无效.1usb_init(); //usb库初始化Timer0_Init(); //定时器0初始化EA 1; //CPU开放中断打开总中断。while(1) //死循环{if( TIM_10MS_Flag1 ) //如果10ms到了{TIM_10MS_Flag 0; //清空标志位}} }void Timer0_Isr(void) interrupt 1 {static timcount 0;SEG_LED_Show(); //数码管刷新的timcount; //1ms1if( timcount10 ) //如果这个变量大于等于10,10ms计数到达{timcount 0;TIM_10MS_Flag 1; //10ms时间到了} }void sys_init() //函数定义 {WTST 0; //设置程序指令延时参数赋值为0可将CPU执行指令的速度设置为最快EAXFR 1; //扩展寄存器(XFR)访问使能CKCON 0; //提高访问XRAM速度P0M1 0x00; P0M0 0x00; //设置为准双向口P1M1 0x00; P1M0 0x00; //设置为准双向口P2M1 0x00; P2M0 0x00; //设置为准双向口P3M1 0x00; P3M0 0x00; //设置为准双向口P4M1 0x00; P4M0 0x00; //设置为准双向口P5M1 0x00; P5M0 0x00; //设置为准双向口P6M1 0x00; P6M0 0x00; //设置为准双向口P7M1 0x00; P7M0 0x00; //设置为准双向口P3M0 0x00;P3M1 0x00;P3M0 ~0x03;P3M1 | 0x03;//设置USB使用的时钟源IRC48MCR 0x80; //使能内部48M高速IRCwhile (!(IRC48MCR 0x01)); //等待时钟稳定USBCLK 0x00; //使用CDC功能需要使用这两行HID功能禁用这两行。USBCON 0x90; }void delay_ms(u16 ms) //unsigned int {u16 i;do{i MAIN_Fosc/6000;while(--i);}while(--ms); } 先对示例代码进行测试复制E:\STC32\STC32G-DEMO-CODE-V9.6-20230425\COMM文件夹至待移植工程目录并添加include文件路径将成功编译后的文件载入开发板。下载时选择主频为22.1184。 看一下示例程序里使用的引脚在UART2_config(2)上跳转初始化S2_S 1; //UART2 switch to: 0: P1.0 P1.1, 1: P4.6 P4.7选择的是P4.6和P4.7。 正常运行时板子无任何变化选择USB转232所在的串口再看一下程序里的波特率为115200#define Baudrate2 (65536 - MAIN_Fosc / 115200 / 4)常用的还有9600。无校验停止位1。打开串口发送数据后返回一模一样的数据。执行的主要代码段为 while (1){if((TX2_Cnt ! RX2_Cnt) (!B_TX2_Busy)) //收到数据, 发送空闲{S2BUF RX2_Buffer[TX2_Cnt];B_TX2_Busy 1;if(TX2_Cnt UART2_BUF_LENGTH) TX2_Cnt 0;}}示例代码验证完没有问题可以移植。 代码移植 首先打开刚才的最小工程然后选择波特率的这行复制好了EA1总中断开启。把PrintString2()函数也复制过来。初始化完成后打印一个字符串。代码中的小红点是仿真时的断点也可以做为每次编写代码的位置提示。 再把while主循环部分的执行代码复制移植过来放在10ms执行标识前可以把USB下载的代码段取消注释方便下载。 转到UART2_config(2)的定义看看详细定义方法。移植该功能代码前将上节课的串口模块.C和.H文件中自编代码部分删除。 首先函数需要先移植过来添加声明复制UART2_config函数定义再讲其下的中断函数复制过来除中断函数外其他函数都需要声明才可以使用。中断函数和上节代码一样不详细讲解了。UART2_config里还有设置串口函数SetTimer2Baudraye移植过来声明并复制定义。 接下来在看看函数中的变量以PrintString2为例右击变量名称B_TX2_Busy转向到定义文件找到定义。 如果想主函数中也能使用这些变量需要在usart.h中重新定义在变量名前加extern extern u8 TX2_Cnt; //发送计数 extern u8 RX2_Cnt; //接收计数 extern bit B_TX2_Busy; //发送忙标志extern u8 RX2_Buffer[UART2_BUF_LENGTH]; //接收缓冲这样在别的任意的.C文件中引用头文件usart.h就可以调用这些变量。调用前需要在相应的.C文件前部增加变量声明不赋初始值如在usart.c中增加 #include usart2.hu8 TX2_Cnt; //发送计数 u8 RX2_Cnt; //接收计数 bit B_TX2_Busy; //发送忙标志u8 RX2_Buffer[UART2_BUF_LENGTH]; //接收缓冲修改主时钟#define MAIN_Fosc 22118400L //定义主时钟精确计算115200波特率。复制宏定义Baudrate2和UART2_BUF_LENGTH。至此完成移植。 编译提示错误undefined identifier 编译提示错误HARDWARE\USART\usart2.c(67): error C67: ‘T2_CT’: undefined identifier没有定义。 在示例模板中找一下T2_CT右击转向定义在stc32g.h头文件中sbit T2_CT AUXR^3;AUXR寄存器的第3位。手册中搜索AUXR 地址在0X8E,按这个地址去找如下 不建议直接修改头文件以前的代码都用同样的头文件可以修改程序中的定义为T2CT,修改完后重新编译下载进去实验箱的代码里大部分都没有CDC串口需要手动进入下载模式。串口工具中发送文字能够接收到回显文字移植成功。 以后的工程中如果用到3个串口不要再跟着手册去敲只需要把示例代码下载到板子里去测试没问题就可以移植过来了。实验箱中的代码基本上main.c就搞定了实际做工程的时候有串口2NTC,有ADC外部中断有定时器0等等不可能全都放在demo.c里面。
http://wiki.neutronadmin.com/news/199177/

相关文章:

  • 襄阳做网站seo查询
  • 网站app开发哪家好青海西宁网站建设
  • 如何开一个网站模仿网站属于侵权吗
  • 做网站虚拟主机配置网页设计作业保护动物
  • 广州腾虎网络网站建设wordpress侧边栏字体修改
  • 论文中引用网站中宝丰网站制作公司
  • 提供虚拟主机服务的网站谷歌平台推广
  • 部门网站建设方案htp免费域名注册网站
  • 华艺网络网站开发dw简单网页制作代码
  • 绿韵建设有限公司网站合肥制作网站的公司
  • 网站缩放代码深圳创业贷款条件申请及流程
  • 新浪网站源代码优化网站排名怎么制作
  • c语言也能干大事网站开发网站内容排版
  • 哪些网站可以做网站c 网站开发实例
  • 主题网站的设计方案网站管理页面
  • 建设公司网站费用怎么做账网站后台乱码怎么办
  • 网站建设零金手指花总厦门网站建设a
  • 网站图片大小多少合适动漫风格网站
  • 化学试剂网站建设电脑页面设计怎么弄
  • 网站ww正能量现在的报税网站怎么做更正申报
  • 自己建设网站的费用知更鸟wordpress
  • 浅谈网站规划建设与管理维护网站先做前端还是后端
  • 新手制作网站塘厦镇属于东莞哪个区
  • 太原企业网站模板建站企业网站系统设计论文
  • 广州知名网站设计有口碑的广告灯箱设计制作
  • 网站建设设计原则做网站后台怎么搭建
  • 长页网站网站中的二维码设计
  • 网站那种推广链接怎么做金环建设集团网站
  • iis部署网站无法访问合肥网站建设方案策划
  • 建个网站有什么用如何在网上建设一个公司网站