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

国内规模大的建站公司北京官网seo

国内规模大的建站公司,北京官网seo,wordpress json rest api,专业网站建设收费📊 ​一、核心寄存器概览​ ​寄存器​​功能​​位宽​​关键位域​​USART_SR​状态寄存器(只读)32位RXNE(接收就绪)、TC(发送完成)、TXE(发送寄存器空)、ORE(溢出错误)​USART_DR​数据寄存器(读写)32位低9位有效&…

📊 ​一、核心寄存器概览

寄存器功能位宽关键位域
USART_SR状态寄存器(只读)32位RXNE(接收就绪)、TC(发送完成)、TXE(发送寄存器空)、ORE(溢出错误)
USART_DR数据寄存器(读写)32位低9位有效,存储发送/接收的数据(实际用8位)
USART_BRR波特率寄存器32位DIV_Mantissa(整数部分) + DIV_Fraction(小数部分),控制通信速率
USART_CR1控制寄存器132位UE(使能)、TE(发送使能)、RE(接收使能)、M(字长)、PCE(校验使能)
USART_CR2控制寄存器232位STOP(停止位长度)、LINEN(LIN模式)、CLKEN(时钟使能)
USART_CR3控制寄存器332位DMAT(DMA发送使能)、DMAR(DMA接收使能)、RTSE(RTS流控)、CTSE(CTS流控)

⚠️ ​注意​:

  • 所有寄存器必须按32位字访问(禁止半字/字节操作);
  • 操作前需使能时钟​(RCC_APBxPeriphClockCmd()),否则配置无效。

⚙️ ​二、寄存器详解与配置方法

1. ​状态寄存器(USART_SR)​
  • 关键位​:
    • RXNE(位5):接收数据就绪(读DR自动清除)
    • TXE(位7):发送寄存器空(写DR自动清除)
    • TC(位6):发送完成(读SR后写DR清除)
// 发送前检测TXE
while (!(USART1->SR & USART_SR_TXE)); // 等待发送寄存器空
USART1->DR = data;                     // 写入数据
2. ​波特率寄存器(USART_BRR)​
  • 计算公式​:
    BRR=波特率×16fclk​​
    • 整数部分存于DIV_Mantissa[15:4],小数部分存于DIV_Fraction[3:0]
// 设置115200波特率(系统时钟72MHz)
USART1->BRR = (72000000 / (115200 * 16)); // 计算结果=39.0625 → BRR=0x0273
3. ​控制寄存器1(USART_CR1)​
名称功能
13UE使能USART(1=使能,0=关闭)
12M字长(0=8位,1=9位)
10PCE校验使能(1=启用奇偶校验)
3TE发送使能(1=开启TX)
2RE接收使能(1=开启RX)
// 使能8位数据、无校验、收发模式
USART1->CR1 |= USART_CR1_UE | USART_CR1_TE | USART_CR1_RE;
4. ​控制寄存器2(USART_CR2)​
  • 停止位控制​:
    • STOP[13:12]00=1位停止位,01=0.5位,10=2位,11=1.5位
// 设置1位停止位
USART1->CR2 &= ~USART_CR2_STOP; // 清零STOP位
5. ​控制寄存器3(USART_CR3)​
  • 高级功能​:
    • DMAT(位7):DMA发送使能
    • DMAR(位6):DMA接收使能
    • RTSE(位8):RTS硬件流控使能
// 启用DMA接收
USART1->CR3 |= USART_CR3_DMAR;

🔧 ​三、完整配置流程(寄存器版)​

步骤1:使能时钟
RCC->APB2ENR |= RCC_APB2Periph_USART1;  // USART1时钟使能(APB2总线)
RCC->APB2ENR |= RCC_APB2Periph_GPIOA;   // GPIOA时钟使能
步骤2:配置GPIO为复用模式
// PA9(TX):复用推挽输出
GPIOA->CRH &= ~(0xF << 4);             // 清除PA9配置
GPIOA->CRH |= (0xB << 4);               // 50MHz复用推挽(CNF=10, MODE=11)// PA10(RX):浮空输入
GPIOA->CRH &= ~(0xF << 8);             
GPIOA->CRH |= (0x4 << 8);               // 浮空输入(CNF=01, MODE=00)
步骤3:设置波特率与帧格式
USART1->BRR = 0x0273;                   // 72MHz下115200波特率
USART1->CR1 &= ~USART_CR1_M;            // 8位数据
USART1->CR2 &= ~USART_CR2_STOP;         // 1位停止位
USART1->CR1 &= ~USART_CR1_PCE;          // 无校验
步骤4:使能收发与USART
USART1->CR1 |= USART_CR1_TE | USART_CR1_RE; // 使能发送和接收
USART1->CR1 |= USART_CR1_UE;              // 使能USART
步骤5(可选):中断配置
USART1->CR1 |= USART_CR1_RXNEIE;         // 接收中断使能
NVIC->ISER[0] |= (1 << USART1_IRQn);     // 使能NVIC中断

💻 ​四、数据收发实战代码

1. ​阻塞式发送函数
void USART_SendChar(uint8_t ch) {while (!(USART1->SR & USART_SR_TXE)); // 等待发送寄存器空USART1->DR = ch;                      // 写入数据while (!(USART1->SR & USART_SR_TC));  // 等待发送完成
}
2. ​中断接收服务函数
void USART1_IRQHandler(void) {if (USART1->SR & USART_SR_RXNE) {     // 检查接收中断标志uint8_t data = USART1->DR;        // 读取数据(自动清除RXNE)// 处理接收到的数据...}
}

⚠️ ​五、关键注意事项

  1. 时钟一致性​:

    • USART1挂载APB2(最高72MHz),USART2/3挂载APB1(最高36MHz)
    • BRR计算需根据实际总线频率调整。
  2. 中断标志清除​:

    • RXNE:读DR自动清除
    • TC:需"读SR + 写DR"序列清除
  3. 9位数据模式​:

    • 启用USART_CR1_M后,DR需按16位操作:
      uint16_t data = USART1->DR & 0x1FF; // 读取9位数据
  4. 硬件流控​:

    • 启用USART_CR3_RTSE/CTSE时,需连接CTS/RTS引脚。

🔍 ​六、调试技巧

  • 状态寄存器诊断​:
    if (USART1->SR & USART_SR_ORE) {       // 检测溢出错误USART1->SR &= ~USART_SR_ORE;       // 写1清除错误标志
    }
  • 波特率验证​:
    用示波器测量TX引脚波形,计算实际波特率:
    实际波特率=1/位周期

通过直接操作寄存器,串口通信延迟可降至1μs以内(比库函数快3-5倍),适用于电机控制、高速传感器等实时场景

http://www.hkea.cn/news/905453/

相关文章:

  • 网站设计模板是什么百度网盘人工客服电话多少
  • wordpress文章收缩长春seo优化企业网络跃升
  • 网站地图调用希爱力双效片骗局
  • 珠海网站建设维护友情链接买卖代理
  • 武汉企业网站推广外包网络广告营销案例分析
  • 深圳哪里有做网站的汕头seo排名收费
  • 如何用腾讯云主机做网站株洲发布最新通告
  • 中国建设银行官网站下载信息流广告投放公司
  • 合肥建站平台网络平台推广是干什么
  • 黄冈工程建设标准造价信息网优化工作流程
  • 怎么做服装外贸网站怎么去推广一个产品
  • 和各大网站做视频的工作总结软件推广赚佣金渠道
  • asp.net是做网站的吗企业文化培训
  • 有链接的网站怎么做seochan是什么意思
  • 开发公司 工程管理中存在问题seo人工智能
  • 网站卖给别人后做违法信息seo和点击付费的区别
  • 网站配色 绿色网络推广主要做什么
  • 个人网站制作多少钱公关公司的主要业务
  • 网站底备案号链接代码西安网络推广营销公司
  • 哪个网站开发是按月付费的百度指数是免费的吗
  • asp网站后台管理教程放单平台
  • 做网站毕设任务书网络营销网站建设案例
  • .net 企业网站 模版关键词seo深圳
  • 网站建设优化价格网站seo诊断
  • 网站设计详细设计有没有好用的网站推荐
  • 没有货源可以开网店吗网站更新seo
  • 淄博有做网站的吗百度搜索排名怎么收费
  • wordpress页面添加自定义字段木卢seo教程
  • 长寿网站制作保定seo排名外包
  • 域名和网站一样吗电商运营推广怎么做