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

凡科建站电脑版网址中国物联网公司排名

凡科建站电脑版网址,中国物联网公司排名,为什么有的网站点不开,一个大型网站建设得多少钱目录 按键 按键原理 按键消抖 1.延时消抖 2.抬手检测 通信 1.通信是什么 2.电平信号和差分信号 3.通信的分类 (1)时钟信号划分 同步通信 异步通信 (2)通信方式划分 串行通信 并行通信 (3)通信方向划分 单工 半双工 全双工 4.USART和UART#xff08;串口通信串口通信 (1)串口通信协议 (2)三种逻辑电平标准 1.TTL 2.RS-232 3.RS-485 (3)三种电平协议下的硬件连接 1.TTL电平标准下的硬件物理层——uart 2.RS232电平标准下的硬件物理层 3.RS485电平标准下的硬件物理层 RS-485收发器 RS-485数据链路 5.USART功能框图 发送过程 接收过程 6.串口相关寄存器 (1)串口控制寄存器---数据位长度、校验位、停止位 (2)波特率设置寄存器 (3)中断和状态寄存器 (4)数据发送寄存器 (5)数据接收寄存器 练习循环发送A-Z到串口助手 7.HAL库函数实现发送和接收 发送 接收 8.printf的重定向 按键 按键原理 当按键未按下PC9为高电平 当按键被按下PC9为低电平 1. 先将PC9设置为输入模式 2. 进行输入检测 3. 当检测到PC9为低电平时将PC13的电平翻转 按键消抖 任何的机械按键都会有抖动而且人手按下抬起并不是一瞬间的人抬手是需要反应时间的所以会导致按下的低电平时间过长导致多次误进if判断语句所以会多次切换状态导致误判。 1.延时消抖 if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)0) {HAL_Delay(100);if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)0){HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15);} } 2.抬手检测 检测到抬手动作后再进行灯的电平翻转 if(HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9)0) {while(!HAL_GPIO_ReadPin(GPIOC,GPIO_PIN_9));HAL_GPIO_TogglePin(GPIOA,GPIO_PIN_15); } 通信 1.通信是什么 至少有收发双方进行信号 数据的交互 2.电平信号和差分信号 1.电平信号电平信号有一根是参考电平线信号线的信号值有信号线和参考电平线之间的电压差决定 2.差分信号差分信号没有参考电平线传输一路数据需要两根信号线信号线的信号值由两根信号线的电压差决定。 区别 (1)信号值的表示不同:电平信号的信号值是信号线和参考电平线的电压差决定差分信号的信息值是由两条信号线的电压差决定 (2)传输相同路数的信号电平信号用的数据线根数比差分信号少。比如传输3路信号电平信号需要1根参考电平3根数据线而差分信号需要2x36根数据线 (3)现在通信大部分是差分信号因为差分信号的抗干扰性更强可以在更短的周期传输一个数据。 3.通信的分类 (1)时钟信号划分 同步通信 通信双方根据同步信号通信比如双方有一个共同的时钟信号(SPI全双工 I2C半双工) 异步通信 通信双方有自己独立的系统时钟大家约定好通信的速度。异步通信不需要同步信号但是并不是说通信的过程不同步UART (2)通信方式划分 串行通信 串行通信指的是同一时刻只能收或发一个bit位信息。因此只用1根信号线即可。 串行传输数据一位一位串起来逐个传输数据按位顺序传输。 优点占用引脚资源少 缺点速度相对较慢 并行通信 并行通信指的是同一时刻可以收或发多个bit位的信息因此需要多根信号线才行 并行传输使用多根线同时传输一个字的多个位如 8 根线一次传输 8 个位。 优点速度快 缺点占用引脚资源多 (3)通信方向划分 单工 要么收要么发只能做接收设备或者发送设备。比如收音机 一根信号线只能单向发送或单向接收 半双工 可以收可以发但是不能同时收发 比如对讲机 一根信号线可以接收数据也可以发送数据但是两者不能同时进行 全双工 可以在同一时刻既接收又发送。 手机 两根信号线一根发送数据另一根接收数据真正实现同时收发数据速度快 4.USART和UART串口通信 USART: 支持同步\异步通信、全双工、串行 UART 没有时钟线只支持异步通信、全双工、串行 实际上他们是一种被包含的关系当USART选择放弃其时钟线的时候就是UART (1)串口通信协议 波特率衡量通信速度它表示每秒钟传送的bit的个数。码元/s 9600 115200 4800 bit/s数据位表示通信中实际数据位的个数一般为5、7和8位。起始、停止位数据包从起始位开始到停止位结束。停止位典型的值为11.5和2位。奇偶校验位在串口通信中一种简单的检错方式。 (2)三种逻辑电平标准 1.TTL TTL电平标准逻辑12.4V--5V                         逻辑00V--0.5V 2.RS-232 RS-232电平标准逻辑03V15V                              逻辑1-3V-15V rs232 的逻辑电平和TTL 不一样但是协议一样 3.RS-485 RS-485仅是一个电气标准描述了接口的物理层像协议、时序、串行或并行数据以及链路全部由设计者或更高层协议定义。 RS-485定义的是使用平衡多点传输线的驱动器和接收器的电气特性。 RS-485能够进行远距离传输主要得益于使用差分信号通过共模抑制进行传输当有噪声干扰时仍可以使用线路上两者差值进行判断使传输数据不受噪声干扰。 RS-485是半双工、电气协议二线制差分信号 RS-485电平标准逻辑12V–6V                               逻辑0 -6V— -2V 实际传输的数据是通过判断这两条信号线上的电压差来实现的RS-485总线弥补了RS-232通信距离短速率低的缺点RS-485的速率可高达10Mbit/s理论通讯距离可达1200米RS-485和RS-232的单端传输不一样是差分传输使用一对双绞线 (3)三种电平协议下的硬件连接 1.TTL电平标准下的硬件物理层——uart 现在的Soc都内置了串口控制器串口数据线一般都是两根线一根发送(TX)一根接收(RX)用的TTL电平当然也会有一根地线 需要注意的是 有的串口还有CTS、RTS接口这是和自动流控相关不是必要功能用于保证数据传输的正确性现在基本不用了因为串口常用作打印输出或者用于连接低速的设备对数据正确性没有太高要求 因为uart外设本来输出的就是TTL电平所以也称这种连线方式叫UART uart特点 因为是异步通信所以通信速度较慢 不需要进行电平协议的转换所以电路简单 为什么还要有RS-232、RS-485 (1)串口协议只是规定了数据传输时的协议也就是规定了先传输1还是先传输0的问题但是什么电压表示数据1什么电压表示0这并没有做规定 (2)UART是相对于Soc这端来说的Soc端集成了串口控制器控制器支持串口协议(比如开始位、停止位、数据位、校验位等)用的是TTL电平 (3)实际中两个设备的串口控制器要通信中间是有一段距离的Soc的引脚一般电平都比较低数据能传输的有效距离很短并且不同的设备所使用的电压也不一样不能直接相连 (4)需要中间电路负责来解决电压不匹配、传输距离等问题于是有了RS232、RS485 (5)RS232、RS485都是从电气层面(也就是物理器件)来区分的具体的通信协议都是串口协议但是使用的电压范围、是电平信号还是差分信号等不同 2.RS232电平标准下的硬件物理层 (1)RS232是串口协议在电气层面的实现RS-232标准接口定义了电压范围规定逻辑“1”的电平为-5V~-15 V逻辑“0”的电平为5 V15V (2)Soc的串口引脚一般是3.3V或者5V的电压所以Soc的串口引脚要使用RS232必须添加TTL电平转RS232电平的转换芯片 (3)RS232的接口有多种(DB9接口、四线接口、三线接口)但是起主要作用的都是TX和RX引脚可以简单理解成RS232和UART的区别就是使用的电压范围不一样 DB9接口有9根线最主要的就是RXD和TXD其余的线是用于保证数据传输的正确性 RS232特点 (1)优点RS232标准接口的传输距离更长在15米左右 (2)接口的信号电平值较高易损坏接口电路的芯片又因为与TTL电平不兼容故需使用电平转换芯片才能与Soc的串口引脚连接 3.RS485电平标准下的硬件物理层 RS-485收发器 RS-485是差分传输如果用单片机控制RS-485接口的设备需要用到收发器这一点和CAN总线是类似的如下是一个MCU控制一个RS-485的图示。 RS-485数据链路 上面讲到的RS-485收发器的工作原理下面简单描述RS-485的数据链路。主机发送给从机或者从机发送给主机都会占用到A和B线所以RS-485多用在半双工模式。 TTL到485的转换同样需要电平转换芯片来做下面是常用的一个MAX485电平转换芯片原理图。 特点 RS485传输距离长抗干扰能力强、通信速率高 5.USART功能框图 UART数据发送和接收的流程 Tx数据发送端 Rx数据接收端 发送过程 由CPU或者DMA往TDR中写入数据 然后由硬件自动检测发送移位寄存器中是否有数据正在移位 如果此时有数据正在移位则数据等待当前移位寄存器移位完成后再往移位寄存器中放此过程也是硬件执行。当TDR中的数据放到移位寄存器中的那一刻TDR空这时候标志位TXE置1它来表示发送数据寄存器空。 如果此时没有数据正在移位则直接由硬件将TDR中的数据放到发送移位寄存器中。 需要注意的是当TDR中的数据在等待往移位寄存器中放的时候如果此时CPU或者DMA继续向TDR中写入数据会将TDR中的数据覆盖掉。 接收过程 首先数据线通过RX口连到接收移位寄存器 接收移位寄存器对紫色线的电平进行读取将读取到的数据放到最高位读下一位数据时先把已有的位整体往右移一位然后再将读到的数据放到最高位以此往复直到读满8位。 读满八位以后整体往RDR中放此时RDR非空标志位RXNE置1它来表示RDR非空。 6.串口相关寄存器 (1)串口控制寄存器---数据位长度、校验位、停止位 字长设置由M1\M0共同决定 校验位设置 停止位设置 (2)波特率设置寄存器 (3)中断和状态寄存器 USART_ISR 第七位发送数据标记当发送数据寄存器为空这个位置为1也就是数据写入到发送数据寄存器之后发送数据移位寄存器从发送数据寄存器中将数据全部移走之后ISR第七位置1 第五位接收数据标记当接收数据寄存器非空这个位置为1数据被接受数据移位寄存器搬到接收数据寄存器中以后ISR第五位置1 (4)数据发送寄存器 USART_TDR 决定发送的数据将要发送的数据写入 (5)数据接收寄存器 USART_RDR决定接收的数据将要接收数据的读取 练习循环发送A-Z到串口助手 void sendChar(char ch) { while(USART1-ISR); USART1-TDRch; }int main(void) {HAL_Init();SystemClock_Config();SystemPower_Config();MX_GPIO_Init();MX_USART1_UART_Init();char chA;while (1){sendChar(ch);ch;if(ch Z){chA;}}} 出现乱码的原因 数据往TDR中写入的速度过快导致数据还没来得及往移位寄存器中放就被覆盖了。 解决方法 在CPU往TDR中写入数据之前先判断TDR是否为空 因为TXE标志位置1时标志着TDR空。 所以在往TDR中写入数据之前用while卡死退出的条件为检测到TXE置1 void sendChar(char ch) {while(!(USART1-ISR (17)));//等待TXE置1即TDR空USART1-TDRch; } 7.HAL库函数实现发送和接收 发送 HAL_UART_Transmit(huart1,buf,32,100) huart1句柄 buf要发送的字符串或数组名 32要发送的数据的大小 100超时时间 接收 HAL_UART_Receive(huart1,buf,32,100) huart1句柄 buf接受的容器 32容器的大小 100超时时间 8.printf的重定向 int printf(const char * format,...) printf函数底层调用的是fputc函数fputs是将要发送的数据写入到标准输出流stdout int fputc(int /*c*/, FILE * /*stream*/) 因此如果想让printf将数据输出到串口需要重写fputc WEAK弱符号 weak 顾名思义是“弱”的意思所以如果函数名称前面加上__weak 修饰符我们一般称这个函数为“弱函数”。 加上了__weak 修饰符的函数用户可以在用户文件中重新定义一个同名函数最终编译器编译的时候会选择用户定义的函数如果用户没有重新定义这个函数 那么编译器就会执行__weak 修饰的函数并且编译器不会报错。 自己写个重定向函数 int fputc(int ch, FILE * p) {while(!(USART1-ISR 17));//等待TDR为空即TXE置1跳出while然后往TDR中放数据USART1-TDRch; }
http://www.pierceye.com/news/424834/

相关文章:

  • 滨海做网站公司网页设计模板 中文
  • 辽源市网站建设怎么学做电商
  • 做pc端网站行情网站标签化
  • 中国做的很好的食品网站php图片网站源码
  • 做自媒体小视屏哪个网站好邹平网站建设公司
  • 字体样式 网站layui 网站建设模板
  • 沈阳网站设计江苏城乡建设部网站首页
  • 网站手机端生成wordpress如何下载
  • 网站数据抓取怎么做营销型网站开发定制
  • 福州营销型网站建设中国建设工程信息网站
  • 怎么在服务器里面做网站公司网站模板怎么做
  • 网站建设制作设计营销公司杭州石家庄网络公司哪家好
  • 重庆网站制作特点优势互联免费主机
  • 义乌网站制作多少钱wordpress有访客记录
  • 网站改版建议策划书百度搜索名字排名优化
  • 做药的常用网站wordpress加载js代码
  • 网站备案 通知杭州企业展厅设计公司
  • 简单个人网站开发代码广州白云区建设局网站
  • 网站空间控制面板软件做网站设计前景怎么样
  • 交流平台网站怎么做不了在家做网站编辑
  • 网站管理员登陆不了免费网页上传网站
  • 关于网站建设的英文歌外网设计素材网站
  • 中山比好的做网站的公司扫二维码直接进网站怎么做
  • 上海互联网网站建设东莞系统网站建设
  • 系部网站建设创新点外贸平台网站的营销方式
  • 做网站不给源代码吉林省招标网官方网站
  • 设计公司网站需要什么条件韩国能否出线
  • 做网站每个月可以赚多少钱公司注册网上怎么申请核名
  • 网站做防伪查询代码高校网站建设意义
  • 网站建设个人年终总结电子商务网站开发主要有哪些