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

网站需要多大宽带成都新一轮疫情

网站需要多大宽带,成都新一轮疫情,衡阳网站建设步骤,吉林市一建公司官网一:串口发送软件流程设计 1:初始化系统 a:初始化GPIO 、串口外设时钟 b:初始化串口引脚 c:初始化串口外设 2:串口发送 usart.c #include "stm32f10x.h" #include "usart.h"void my_usart_Init()//千万不要和32库里面串…

一:串口发送软件流程设计

1:初始化系统
        a:初始化GPIO 、串口外设时钟
        b:初始化串口引脚
        c:初始化串口外设
2:串口发送
usart.c
#include "stm32f10x.h"
#include "usart.h"void my_usart_Init()//千万不要和32库里面串口定于的名字一样,不然会报错
{GPIO_InitTypeDef my_usart_Initstruct;USART_InitTypeDef USART_Initstruct;RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);my_usart_Initstruct.GPIO_Pin=GPIO_Pin_9;my_usart_Initstruct.GPIO_Mode=GPIO_Mode_AF_PP;my_usart_Initstruct.GPIO_Speed=GPIO_Speed_10MHz;GPIO_Init(GPIOA, &my_usart_Initstruct);my_usart_Initstruct.GPIO_Pin=GPIO_Pin_10;my_usart_Initstruct.GPIO_Mode=GPIO_Mode_IN_FLOATING;GPIO_Init(GPIOA, &my_usart_Initstruct);USART_Initstruct.USART_BaudRate=115200;USART_Initstruct.USART_HardwareFlowControl=USART_HardwareFlowControl_None;USART_Initstruct.USART_Mode=USART_Mode_Rx | USART_Mode_Tx ;USART_Initstruct.USART_Parity=USART_Parity_No;USART_Initstruct.USART_StopBits=USART_StopBits_1;USART_Initstruct.USART_WordLength=USART_WordLength_8b;USART_Init(USART1,&USART_Initstruct);USART_Cmd(USART1, ENABLE);}

usart.h

#ifndef USART_H_
#define USART_H_void my_usart_Init(void);#endif

main.c

#include "stm32f10x.h"
#include "main.h"
#include "led.h"
#include "Bear.h"
#include "key.h"
#include "relay.h"
#include "shake.h"
#include "wireless.h"
#include "exti_key.h"
#include "usart.h"void delay(uint16_t time)//延时1ms  软件延时粗延时
{uint16_t i=0;while(time --){i=12000;while(i --);}}int  main()
{my_usart_Init();while(1){USART_SendData( USART1, 1);}}

二:代码心得

1:在写usart.c的初始化串口引脚时为什么用复用模式?

  处理器的引脚本身默认就是一个普通的GPIO,但是它还可以被复用成其他功能,我
们称之为一个引脚的复用功能,因为我们要用他的串口功能  
2:在写usart.c如何确定A9和A10两个IO口用什么模式
看手册

 3:或(|)和与(&)的原理

一、符号 |(按位或)

1. 作用
  • 用于组合多个使能标志位(每个标志位对应一个外设)。

  • 将多个二进制位中至少有一个为1的位设为1

2. 原理
  • 假设:

    • RCC_APB2Periph_GPIOA = 0x00000004(二进制:0000 0100

    • RCC_APB2Periph_USART1 = 0x00000010(二进制:0001 0000

  • 按位或操作:

    text

    0000 0100  (GPIOA)
    OR
    0001 0000  (USART1)
    ----------
    0001 0100  (结果:0x14)
  • 结果同时保留了GPIOA和USART1的使能位。

  • 总结:

  • 按位或(|)的使用:按位或的规则是:两个位中只要有一个为1,结果位就为1。

  • 按位与(&)的使用:两个位都为1时,结果位才为1

 4:USART_WordLength_8b 和 USART_WordLength_9b 

为什么用8位不用9位?

  1. 字节对齐:

    • 计算机系统基本单位是8位字节

    • 所有字符编码(ASCII/UTF-8)基于8位

何时使用9位?

  • 多机通信中的地址/数据区分

  • 定制协议需要额外标志位

  • 奇偶校验+8位数据等效于9位帧

5:USART_Cmd(USART1,ENABLE)的使用 

1. 时钟使能 RCC_APB2PeriphClockCmd()

c

RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_USART1, ENABLE);
  • 作用对象:RCC(Reset and Clock Control)时钟控制器

  • 功能:打开USART1和GPIOA的时钟门控

  • 原理

    • STM32为降低功耗,默认关闭所有外设时钟

    • 此操作相当于给USART1和GPIOA模块"通电"

  • 必要性

    • 没有时钟时,无法访问USART寄存器

    • 未使能时钟时操作USART会导致HardFault错误

 

2. 外设使能 USART_Cmd()

c

USART_Cmd(USART1, ENABLE);  // 关键步骤!
  • 作用对象:USART外设本身

  • 功能:激活USART的核心收发功能

  • 原理

    • 设置USART控制寄存器(CR1)的UE位(USART Enable)

    • UE位=0时:USART处于休眠状态(即使有时钟)

    • UE位=1时:启动USART的串行引擎

  • 必要性

    • 没有此操作,USART不会处理任何数据

    • 发送/接收缓冲区将无法工作

总结RCC_APB2PeriphClockCmd 是给外设"供电",USART_Cmd 是"开机按钮"。二者缺一不可,共同确保USART正常工作。 

http://www.dtcms.com/wzjs/127830.html

相关文章:

  • 利用帝国cms网站建设中国十大广告公司排行榜
  • 深圳建网站找哪家东莞疫情最新消息今天
  • 域名备案的网站建设方案书模板泰安优化关键词排名哪家合适
  • 类似b站的网站怎么做重庆森林经典台词梁朝伟
  • 资源网站建设多少钱qq群推广引流免费网站
  • 西安哪家做网站靠谱简述网络营销的含义
  • 学院宣传网站制作seo中文含义是什么
  • 黄冈最专业的公司网站建设平台淄博网站制作
  • 新手学做网站要多久软文推广经典案例
  • 网站是否含有seo收录功能市场营销策划方案书
  • 哈尔滨住房和城乡建设委员会网站网络推广接单平台
  • linux网站建设技术指南seo教程下载
  • 网站建设有关的职位seo推广优化官网
  • 自己做一个网站难不难59软文网
  • 2018年做网站还能百度文库网页版
  • 做销售如何在网站上搜集资料爱站网官网查询域名
  • 大连建设网网址seo技术培训机构
  • 在线定制图片河南seo外包
  • 做营销网站公司南宁网站推广排名
  • 骨骼型的网站好看的html网页
  • 福永响应式网站建设百度推广优化技巧
  • 屯济宁做网站公司一键生成app制作器
  • 厦门网站建设价win优化大师有用吗
  • 建站公司没前端百度热搜榜排名今日头条
  • 校园网站建设培训体会网站查询平台
  • 腾讯企业邮箱的优惠活动优化营商环境 助推高质量发展
  • 筑梦网站建设seo必备工具
  • 设计网站建设选题报告关键词排名优化方法
  • 企业官方网站的建设泉州百度竞价推广
  • 转运公司网站建设抖音代运营公司