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

做零售的外贸网站老薛主机卸载wordpress

做零售的外贸网站,老薛主机卸载wordpress,防恶意点击软件,短链接生成器免费一:串口发送软件流程设计 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/a/449698.html

相关文章:

  • 【Android】Android 的三种动画(帧动画、View 动画、属性动画)
  • 南阳提高网站排名做网站租服务器多少钱
  • Dify本地初始化后安装模型供应商瞬间失败控制台报错401
  • Prometheus接入“飞书“实现自动化告警
  • 现在asp做网站网站改版后百度不收录
  • 做外贸要做什么网站搭建一个网站教程
  • 织梦做的网站怎么会被黑建设项目环评在什么网站公示
  • Python @装饰器用法详解
  • 模电基础:差分放大电路
  • SSM--day2--Spring(二)--核心容器注解开发Spring整合
  • 正规的装饰行业网站建设公司北京新浪网站制作公司
  • Verilog可综合电路设计:重要语法细节指南
  • 力扣hot100做题整理(41-50)
  • 大连模板网站制作公司电话创业平台有哪些
  • 实战指南:文生图模型 Animagine XL 4.0
  • Linux中fcntl系统调用的实现
  • 网站搭建大型公司框架网站模板
  • RAG开发
  • 季度优选策略:年化472%,回撤 8%,夏普5.48,卡玛比率61.55
  • 直播网站建设费用做音乐的网站设计
  • 基于springboot的蜗牛兼职网的设计与实现
  • 网站管理系统是什么wordpress 分类浏览
  • Docker(五)—— Docker Compose 一键搭建 LNMP 架构并部署 WordPress
  • uniapp开发的后台系统
  • 深圳网站营销公司网站做实名验证
  • python编写AI生常用匡架及使用指令集
  • GridView 中使用重绘边界的实用建议
  • FPGA学习篇——Verilog学习之计数器的实现
  • 网站建设万网浙江建设网站公司
  • 刷粉网站推广快点商标设计注册