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

如何用Python网站开发苏州网站建设制作服务商

如何用Python网站开发,苏州网站建设制作服务商,移动端关键词排名优化,手机网站怎么搜索引擎对于刚开始涉足STM32微控制器编程的初学者来说#xff0c;掌握其通用同步/异步接收/发送器#xff08;USART#xff09;功能是一项基本且必要的技能。USART在嵌入式系统中广泛用于串行通信。本指南旨在简明扼要地介绍USART的基础概念和基本步骤#xff0c;并提供一个简单的…对于刚开始涉足STM32微控制器编程的初学者来说掌握其通用同步/异步接收/发送器USART功能是一项基本且必要的技能。USART在嵌入式系统中广泛用于串行通信。本指南旨在简明扼要地介绍USART的基础概念和基本步骤并提供一个简单的示例来帮助初学者快速入门。 USART简介 USART是一种串行通讯接口它支持同步和异步通信。在STM32微控制器中USART是一个非常灵活的功能模块可以在多种通信标准下工作如RS232、RS485、LIN和IrDA。 串口通信过程简介 想象一下有两个设备要通过串口线进行通信。我们称它们为设备A发送方和设备B接收方。 设备准备开始时设备A和设备B都设置了相同的波特率。这就像是它们同意按相同的节奏跳舞确保彼此步调一致。 开始传输设备A想要发送一个字符比如字母“A”。在ASCII码中“A”对应的二进制是01000001。 打包数据设备A将这个字符打包成一系列的信号。首先它添加一个起始位通常是一个0然后是字母“A”的二进制表示然后可能还有一个校验位最后是停止位通常是一个1。 这个打包好的数据包看起来可能是这样的 0   01000001 [校验位] 1 逐位发送设备A通过串口线开始发信号每次发送一位。按照先前设置的波特率它准确地控制发送每个位的时间间隔。 信号传输信号顺着串口线一路传到设备B。设备B按照相同的波特率接收这些信号。 接收数据设备B首先检测到起始位然后逐个接收数据位并在最后读取停止位。如果启用了校验它还会检查数据是否完好。 完成传输一旦设备B读取了完整的信号并且确认无误它就知道它成功接收了一个字符。然后它就准备好接收下一个字符了。 在此过程中如果波特率设置错误或数据中有干扰导致错误设备B可能会得到错误的字符。这就是波特率和准确的通信设置为何极其重要的原因。 配置USART 配置STM32上的USART通用同步/异步接收/发送器功能需遵循以下步骤时钟配置 首先需要为相关的USART和GPIO时钟使能。通过RCCReset and Clock Control可以配置这些时钟。例如如果使用的是USART1通常需要使能它的时钟以及连接到它的GPIO端口时钟。 GPIO配置 接下来配置GPIO将涉及到的针脚设置为USART TX发送和RX接收功能。在STM32中大多数GPIO针脚可被配置为多种模式包含USART复用功能。 USART配置 设置USART的基本通信参数包括         波特率Baud rate例如9600、115200等。         字长Word length数据位长度如8位、9位。         停止位Stop bits常见有1位停止位或2位停止位。         校验位Parity可选无校验、奇校验或偶校验。         流控Flow control可选无、硬件RTS/CTS或软件XON/XOFF流控。 这些参数可以通过USART_Init函数设置在STM32标准固件库或HAL库中。 中断配置可选 如果计划使用中断来管理USART通信需要配置USART中断并在NVIC中使能它们。这涉及到编写ISRInterrupt Service Routine中断服务程序以及在NVIC中设置优先级和使能中断。 使能USART 最后初始化过程中在配置完所有必要的参数后使能USART模块。 数据发送和接收 发送数据要发送数据可以将数据写入USART的数据寄存器然后等待发送缓冲区(USART_FLAG_TXE)为空即可发送下一个数据。 接收数据接收数据时要检查接收数据寄存器(USART_FLAG_RXNE )非空标志位当接收到数据时从数据寄存器读取数据即可。 // 如果收到数据if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) ! RESET){// 从USART1读取数据并回显char data USART_ReceiveData(USART1);USART_SendData(USART1, data);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) RESET);} USART_FLAG_RXNE接收缓冲区非空标志和USART_FLAG_TXE发送缓冲区空标志是USART通信中两个很重要的状态标志它们存在于USART的状态寄存器中用于指示USART某些事件的状态。 USART_FLAG_RXNE (Read data register not empty): 当接收到数据接收数据寄存器非空时该标志位被置1。 这意味着至少有一个数据可以被读取。 在轮询模式下可以检查这个标志位如果置位则可以通过USART_ReceiveData()函数读取数据。 如果启用了接收中断通过USART_ITConfig(USART1, USART_IT_RXNE, ENABLE)当USART_FLAG_RXNE置位时将触发中断。 USART_FLAG_TXE (Transmit data register empty): 发送数据寄存器为空时该标志位被置1。 这表示可以将新数据写入发送数据寄存器。 在发送数据时可以检查这个标志位确保发送数据寄存器为空然后通过USART_SendData()函数发送下一个数据。 如果启用了发送中断通过USART_ITConfig(USART1, USART_IT_TXE, ENABLE)当USART_FLAG_TXE置位时将触发中断。 在实际应用中这两个标志位常常用于轮询方式或中断方式的数据发送和接收以保证USART通信的正确性和效率。  实际操作示例 #include stm32f10x.h #include stm32f10x_usart.h #include stm32f10x_gpio.h #include stm32f10x_rcc.h void USART1_Init(void); int main(void) {// 系统时钟初始化SystemInit();// 初始化USART1USART1_Init();// 主循环while(1){// 如果收到数据if(USART_GetFlagStatus(USART1, USART_FLAG_RXNE) ! RESET){// 从USART1读取数据并回显char data USART_ReceiveData(USART1);USART_SendData(USART1, data);while(USART_GetFlagStatus(USART1, USART_FLAG_TXE) RESET);}} } void USART1_Init(void) {// 各种外设时钟使能RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1 | RCC_APB2Periph_GPIOA, ENABLE);// GPIOA 9和10为TX和RX初始化GPIO_InitTypeDef GPIO_InitStruct;GPIO_InitStruct.GPIO_Pin GPIO_Pin_9; // PA9作为USART1的TXGPIO_InitStruct.GPIO_Mode GPIO_Mode_AF_PP; // 复用推挽输出GPIO_InitStruct.GPIO_Speed GPIO_Speed_50MHz;GPIO_Init(GPIOA, GPIO_InitStruct);GPIO_InitStruct.GPIO_Pin GPIO_Pin_10; // PA10作为USART1的RXGPIO_InitStruct.GPIO_Mode GPIO_Mode_IN_FLOATING; // 浮空输入GPIO_Init(GPIOA, GPIO_InitStruct);// USART1初始化设置USART_InitTypeDef USART_InitStruct; USART_InitStruct.USART_BaudRate 9600;USART_InitStruct.USART_WordLength USART_WordLength_8b;USART_InitStruct.USART_StopBits USART_StopBits_1;USART_InitStruct.USART_Parity USART_Parity_No;USART_InitStruct.USART_HardwareFlowControl USART_HardwareFlowControl_None;USART_InitStruct.USART_Mode USART_Mode_Rx | USART_Mode_Tx;USART_Init(USART1, USART_InitStruct);// 使能USART1USART_Cmd(USART1, ENABLE); }
http://www.pierceye.com/news/476425/

相关文章:

  • 城乡建设网站职业查询系统小公司根本办不了icp许可证
  • 网站架构搭建搭建网站是什么专业
  • 互助网站建设电脑做网站端口映射
  • 电力行业做的好的招投标网站wordpress 自定义注册表单
  • 网站开发采集工具网站设计计划书的要求
  • 技术支持:佛山网站建设珠海网站制作服务
  • 公司网站建设方案ppt网站下载织梦模板
  • 免费创建虚拟网站漳州鼎信
  • 武义县网站建设公司上海seo外包
  • 免费html网站模板下载怎么做网站外链接
  • 南昌网站建设公司收费桂林做网站的公司有哪些
  • 南京网站建设方案智能管理系统
  • 黄埔网站建设价格资源网站推广
  • 桦南县建设局网站动漫制作技术和动漫设计
  • 在农村开个网站要多少钱网站客户运营
  • 免费做文字图网站企业所得税计算方式
  • 做网站要有策划么设计师专用网站
  • 站长之家是什么哈尔滨模板建站服务商
  • 自己做网站需要备案么关键词seo资源
  • 用tornado做网站网站建设素材库
  • dedecms织梦古典艺术书画书法公司企业网站源码模板wordpress 优酷插件
  • 深圳购物网站建设301跳转wordpress
  • 如何做自己的加盟网站开发高端客户
  • 沈阳网站建设哪里好wordpress模块管理系统
  • 跨境外贸平台有哪些天津百度快速排名优化
  • 网站建设需要了解哪些方面企业的网站建设与设计论文
  • 网站建设市场分析内蒙古企业网站建设
  • 广州 网站建设公司不用代码做网站的软件
  • 本地php网站搭建wordpress前台注册登入
  • 网站做推广页需要什么软件下载豪禾创意海报设计理念