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

诚信网站认证怎么做东营房产信息网

诚信网站认证怎么做,东营房产信息网,建设一个大型网站大概费用,带屏蔽的网站做水晶头一、初始LED原理图 共阴极led LED发光二极管#xff0c;需要有电流通过才能点亮#xff0c;当有电压差就会产生电流 二极管两端的电压差超过2.7v就会有电流通过 电阻的作用 由于公式IV/R 不加电阻容易造成瞬间电流无穷大 发光二极管工作电流为10-20MA 3.3v / 1kΩ 3.… 一、初始LED原理图 共阴极led LED发光二极管需要有电流通过才能点亮当有电压差就会产生电流 二极管两端的电压差超过2.7v就会有电流通过 电阻的作用 由于公式IV/R 不加电阻容易造成瞬间电流无穷大 发光二极管工作电流为10-20MA 3.3v / 1kΩ  3.3mA 电阻作用限流电阻。 二、分析GPIO寄存器 2.1 前言 编程的目的是为了操作硬件硬件分布在地址上所以转变为编程操作地址因为地址是唯一的。 编程的目的就操作地址间接操作硬件 地址分布比较广硬件都会把地址用寄存器的方式来分布 某个地址到某个地址属于某个寄存器 这样的话我们操作硬件实际上就是在操作地址操作地址实际上就是转化为操作寄存器。 2.2 本节目标 操控PA1-PA4输出高电平 经过前言分析可知这几个问题编程找到一个或者某几个寄存器这几个寄存器可以让我们的PA1-PA4进行高电平的输出。 另一个要注意的我们的gpio口当前pa1-pa4要输出高低电平那么当前这个pa1-pa4他所对应的功能是通用的输入输出。 这时候pa1-pa4是输出功能还有其他功能当前处理器有48个管脚每一个管脚有多个功能某一时刻只用一个功能这就是管脚的复用。找寄存器那几个可以管理我们的pa1-pa4让这个四个管脚可以当做输入输出功能中的输出功能来用。  为了更好的实现分析这时候需要去看stm32的中文参考手册 其中第八节是对gpio的描述 GPIO描述每个gpio端口有两个32位配置寄存器两个数据寄存器一个32位置位/复位寄存器一个16位复位寄存器一个32位锁定寄存器总共有七个寄存器我们就是通过操作这些寄存器来控制我们的GPIO的。 注1字节8位bit 其中GPIO每个端口又可以配置成如下八种模式 对于具体gpio配置成什么模式8.1.11节外设的GPIO配置有详细解释 2.3 寄存器描述 首先看8.2.1端口配置低寄存器GPIOx_CRLxA..E 4位一组  分别配置输入输出模式和速度。 从表中可以看到低寄存器对应的是GPIO0-7 正好对应32的八组。 端口配置高寄存器是8-15 因为我们要配置的是PA1-4所以我们只关系低寄存器的1-4也就是4-19位 对于输出模式大多数gpio采用推挽输出模式即可  2.4 寄存器地址确定 当我们确定好要操作的寄存器后下一步就需要找到寄存器对应的地址然后在相应的位写入数据即可 寄存器地址由基地址偏移地址组成 gpio的基地址在 的寄存器映像中可以找到 整个地址被分为0x0000 0000  到 0Xffff  FFFF 当前stm32是32位的处理器。就是2的32次方。 最多能管理从0开始一直到2的32次方减1. 由寄存器映像可知gpioA的基地址是0x4001 0800 所以我们要操作的低寄存器地址就是基地址偏移地址0x4001 0800 0x00 一会就要向这个地址里面的4到19位写0011 0011 0011 0011  根据寄存器配置说明可知00是通用推挽输出11是最大速度50MHz这样gpioA1-4就都配置成了最大速度50Mhz 推挽输出模式 2.5 输出寄存器配置 当知道gpio1-4的地址并配置好输出模式后我们应该考虑输出数据了应该会有一个寄存器会完成这部分操作。  找到了端口输出数据寄存器 首先确定其地址地址基地址偏移地址0x4001 0800 0xCH  0x4001 08CH 这16位就占了我们寄存器中的低16位。 端口输出寄存器干什么用的呢你往哪一个端口写1哪一个就输出高电平 哪一个端口写0就输出低电平。 gpio我们只用到了pa1-pa4所以这个寄存器我们只需要关心 三、寄存器配置代码 控制低寄存器地址  我们现在是要往地址里面去写 值那么我们现在要修改的不是地址指向的位置而是要修改我们地址里面的值地址里面的内容也就是说我们要取出这地址里面的内容把里面的内容做一个修改要如何修改如何取出地址里面的值我们就需要再加一个强制类型转换。  这个代表了地址了  取出地址里面的内容 用到了两个*第一个*是强制类型转换将我们的0x40010800转成了一个用来表示地址的指针如何取出地址里面的值呢取值操作符。 取出地址里面的值了下一步要干什么我是不是要修改这个地址里面的值。 如何修改呢我们要修改的是这个地址里面的4-19位就可以了。 如何修改4-19位最好的 做法是先给他清零然后再写入我们的新值 这一部分属于C语言的内容 分别用到了 按位与如果两个相应的二进制位都为1则该位的结果值为1否则为0I按位或两个相应的二进制位中只要有一个为1该位的结果值为1^按位异或若参加运算的两个二进制位值相同则为0否则为1~取反~是一元运算符用来对一个二进制数按位取反即将0变1将1变0左移用来将一个数的各二进制位全部左移N位右补0右移将一个数的各二进制位右移N位移到右端的低位被舍弃对于无符号数高位补0 1.与运算 参加运算的两个数据按二进制位进行“与”运算。 运算规则000; 010; 100; 111; 即两位同时为“1”结果才为“1”否则为0 例如35 即 0000 0011 0000 0101 0000 0001 因此35的值得1。 两个数与的结果一定是比任意两个数都小换句话说越与数越小 2.或运算| 参加运算的两个对象按二进制位进行“或”运算。 运算规则0|00 0|11 1|01 1|11 即 参加运算的两个对象只要有一个为1其值为1。 例如:3|5 即 0000 0011 | 0000 0101 0000 0111 因此3|5的值得7。 两个数或的结果一定是大于其中的任意一个数换句话说越或数越大 3.异或运算^ 参加运算的两个数据按二进制位进行“异或”运算。 运算规则0^00 0^11 1^01 1^10 即参加运算的两个对象如果两个相应位为“异”值不同则该位结果为1否则为0。 例如9^5可写成算式如下 00001001^0000010100001100 可见9^512 4.取反运算~ 参加运算的数据按二进制位进行“取反”运算。 运算规则~01 ~10 即参与运算的数据对应的二进制取反后 0 变成 1 1 变成 0 。 例如 3 00000011 ~3 11111100 252 5.左移运算 参与运算的数据二进制全部向左移动 n 位左边舍去右边补 0 运算规则00000101 1 00001010 即参与运算的数据对应的二进制位向左移动 n 位左边舍去右边补 0 。 例如2 1 4 ; 00000010 1 00000100 左移一位相当于乘以 2 6.右移运算 参与运算的数据二进制全部向右移动 n 位右边舍去左边补 0 运算规则00000101 1 00000010 即参与运算的数据对应的二进制位向右移动 n 位右边舍去左边补 0 。 例如 2 1 1 ; 00000010 1 00000001 右移一位相当于除以 2 上述位预算符---------原文链接https://blog.csdn.net/qq_52354698/article/details/119301131 与操作会清零如何修改4-19位4-19位清零其他位不变 0xff0000f  111111111111000000000000000011111111 当进行位与操作时因为4-19位都是0按照其运算规则得到值始终是0 清楚之后这时候需要去修改我们的4-19位分别写成0011 0011 0011 0011 这时候可以采用或操作。 0011等于十六进制的3 或操作置位 0x00033330 四、通过寄存器地址进行点灯操作  注  清零是与操作 置1是或操作 管脚高电平点亮 低电平熄灭 点亮led灯和我们的端口输出数据寄存器有关 寄存器地址等于基地址偏移地址 现在我们要让他输出一个高电平 就要往这个寄存器里面的1-4位写高电平 要让灯熄灭的话对应写0就可以了 在进入循环语句之前应该让我们的led灯都熄灭在循环中点亮熄灭 DOR寄存器地址 0x4001080c 首先对寄存器清零清零就是与操作 11 10 12 100 13 1000 14 10000 |或完是11110 取反后是00001 通过循环做一个延时 五、GPIO库函数  在stm32固件库函数手册的第10节对GPIO的库函数进行了描述 GPIO寄存器结构GPIO_TypeDef和AFIO_TypeDef在文件stm32f10x_map.h中 其中AFIO有两个功能 1、引脚复用重映射 2、中断引脚选择 GPIO函数库 其中标黄的是常用的几个库函数 函数GPIO_DeInit和函数GPIO_DeInit 配置GPIO端口为默认值。 函数GPIO_Init对GPIO进行初始化主要包括配置GPIOx的那个引脚配置成什么模式速度是多少这些都是通过一个结构体进行配置的。 GPIO_ReadInputDataBit读取PA15的输入值GPIOA_PIN_15 函数GPIO_ReadInputData读取GPIOA的输入值多位 函数GPIO_ReadOutputDataBit读取PA15的输出值 函数GPIO_ReadOutputData读取GPIOA的输出值多位 一个字节8位bit所以末尾bit就是读一位的值 函数 GPIO_SetBits设置PA15的值就是置1 函数 GPIO_ResetBits清除PA15的输入值就是置0 函数 GPIO_WriteBit设置PA15的值可以是0也可以是1 函数GPIO_Write设置PA的值可以是一个十六进制的值一下设置多位 函数GPIO_EXTILineConfig中断时使用选择一个GPIO引脚作为中断线路。
http://www.w-s-a.com/news/4433/

相关文章:

  • 苏州和城乡建设局网站撸撸撸做最好的导航网站
  • 网站被同行抄袭怎么办深圳中装建设集团
  • 建站及推广瓦房店 网站建设
  • 怎么查网站是在哪里备案的广州电力建设有限公司网站
  • 做网站自己申请域名还是对方wordpress管理地址
  • 专门做二手书网站或appwordpress首页显示特定分类文章
  • 无锡网站设计厂家一建十个专业含金量排名
  • 网站刷链接怎么做成都高度网站技术建设公司
  • flash网站模板怎么用xml网站地图生成
  • 英文网站优化群晖wordpress中文
  • saas建站平台源码济南品牌网站建设公司
  • 网站建设一般是用哪个软件网站百度
  • 企业建站的作用是什么南宁公司网站开发
  • 厦门网站建设及维护门户网站开发视频教学
  • 可以做兼职的网站有哪些自动点击器永久免费版
  • 建购物网站怎么建呀网站怎么做中英文交互
  • 网站建设费用计入无形资产做网站用的主机
  • 佛山企业网站建设平台沈阳网站建设培训班
  • 河南企业网站优化外包网站怎么做来流量
  • 网站建设的参考文献网站设计网页的优缺点
  • WordPress多站點支付插件内江市网站建设培训
  • 做做网站已更新动漫制作专业需要学什么
  • dfv印花图案设计网站网站建设应该应聘什么岗位
  • 网站后台管理系统模板下载专业网站推广的公司哪家好
  • 克拉玛依市建设局网站网页设计板式重构
  • 网站新闻专题怎么做湖南营销型网站建设 要上磐石网络
  • 阿里云发布网站成都轨迹公布
  • php网站源码架构谷歌站群系统
  • 潮州网站seowordpress 调用置顶文章
  • 做带会员后台的网站用什么软件旅游网站建设资金请示