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

网站没有备案会怎样网站开发入门培训

网站没有备案会怎样,网站开发入门培训,sem网站建设,怎么判断网站有没有做百度商桥一、用法 经常会看到类似如下的宏定义语句#xff0c;用于对已经初始化后的 IO 口输出高、低电平。 #define SET_BL_HIGH() GPIOA-BSRRGPIO_Pin_0 #define SET_BL_LOW() GPIOA-BRRGPIO_Pin_0其作用类似于如下两个库函数#xff0c; void GPIO_SetBit…一、用法 经常会看到类似如下的宏定义语句用于对已经初始化后的 IO 口输出高、低电平。 #define SET_BL_HIGH() GPIOA-BSRRGPIO_Pin_0 #define SET_BL_LOW() GPIOA-BRRGPIO_Pin_0其作用类似于如下两个库函数 void GPIO_SetBits(GPIO_Typedef* GPIOx uint16_t GPIO_Pin) void GPIO_ResetBits(GPIO_Typedef* GPIOx, uint16_t GPIO_Pin) 而且实际上这两个库函数就是通过修改BSRRBRR寄存器的值来实现对 IO 口设置的。如下便是输出高电平的函数体 void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) {/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx));assert_param(IS_GPIO_PIN(GPIO_Pin));GPIOx-BSRR GPIO_Pin; }因此使用宏或者库函数本质上都是一样的。区别在于使用宏更快而使用函数更灵活。 二、解释 BSRR 和 BRR 都是 STM32 系列 MCU 中 GPIO 的寄存器。 BSRR 称为端口位设置/清楚寄存器BRR称为端口位清除寄存器。 BSRR 低 16 位用于设置 GPIO 口对应位输出高电平高 16 位用于设置 GPIO 口对应位输出低电平。 BRR 低 16 位用于设置 GPIO 口对应位输出低电平。高 16 位为保留地址读写无效。 所以理论上来讲BRR 寄存器的功能和 BSRR 寄存器高 16 位的功能是一样的。也就是说输出低电平的宏语句可以有如下两种写法。 #define SET_BL_LOW() GPIOA-BRRGPIO_Pin_0 等价于 #define SET_BL_LOW() GPIOA-BSRRGPIO_Pin_0 16 这么来看的话其实 BRR 寄存器是比较多余的。而实际上在最新的 STM32F4 系列 MCU 的 GPIO 寄存器中已经找不到 BRR 寄存器了仅保留了 BSRR 寄存器用于实现端口输出高低电平。因此在 STM32F4 系列 MCU 的 HAL 库函数中对 GPIO 口输出高低电平的函数为如下形式 void HAL_GPIO_WritePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin, GPIO_PinState PinState) {/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));assert_param(IS_GPIO_PIN_ACTION(PinState));if(PinState ! GPIO_PIN_RESET){GPIOx-BSRR GPIO_Pin;}else{GPIOx-BSRR (uint32_t)GPIO_Pin 16U;} }而早期 ST 的标准库 std 中关于 GPIO 口输出高低电平的函数为如下形式里面通过两个16位的指针分别指向 BSRR 的高16位和低16位。 typedef struct {__IO uint32_t MODER; /*! GPIO port mode register, Address offset: 0x00 */__IO uint32_t OTYPER; /*! GPIO port output type register, Address offset: 0x04 */__IO uint32_t OSPEEDR; /*! GPIO port output speed register, Address offset: 0x08 */__IO uint32_t PUPDR; /*! GPIO port pull-up/pull-down register, Address offset: 0x0C */__IO uint32_t IDR; /*! GPIO port input data register, Address offset: 0x10 */__IO uint32_t ODR; /*! GPIO port output data register, Address offset: 0x14 */__IO uint16_t BSRRL; /*! GPIO port bit set/reset low register, Address offset: 0x18 */__IO uint16_t BSRRH; /*! GPIO port bit set/reset high register, Address offset: 0x1A */__IO uint32_t LCKR; /*! GPIO port configuration lock register, Address offset: 0x1C */__IO uint32_t AFR[2]; /*! GPIO alternate function registers, Address offset: 0x20-0x24 */ } GPIO_TypeDef; void GPIO_SetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) {/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx));assert_param(IS_GPIO_PIN(GPIO_Pin));GPIOx-BSRRL GPIO_Pin; } void GPIO_ResetBits(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) {/* Check the parameters */assert_param(IS_GPIO_ALL_PERIPH(GPIOx));assert_param(IS_GPIO_PIN(GPIO_Pin));GPIOx-BSRRH GPIO_Pin; }可见不管是输出高还是输出低都是对 BSRR 寄存器的操作。 三、BSRR、BRR、 ODR 之间的关系 配置 BSRR , BRR 是为了对端口输出进行配置而 ODR 寄存器也是用于输出数据的寄存器一个 ODR 寄存器控制了一组16位的 GPIO 输出。因此对 ODR 进行修改也可以到达对 IO 口输出进行配置。 但是由于对 ODR 寄存器的读写操作必须以 16 位的形式进行。因此如果使用 ODR 改写数据以控制输出时须采用“读-改-写”的形式进行。 假设需要对 GPIOA_Pin_6 输出高电平。采用改写 ODR 寄存器的方式时使用“读-改-写”操作代码如下 uint32_t temp; temp GPIOA-ODR; temp temp | GPIO_Pin_6; GPIOA-ODR temp;而使用改写 BSRR 寄存器时仅需要使用如下语句 GPIOA-BSRR GPIO_Pin_6;这是因为在修改 ODR 时为了确保对端口 6 的修改不会影响到其他端口的输出需要对端口的原始数据进行保存之后再对端口 6 的值进行修改最后再写入寄存器。而对 BSRR 的操作是写 1 有效写 0 不改变原状态因此可以对端口 6 置 1其他位保持为 0。BSRR 为 1 的位会修改相应的 ODR 位从而控制输出电平。 对 BSRR 的操作可以实现原子操作。因此在设置单个 IO 口输出时使用 BSRR 进行操作会更加方便。 但也有例外的时候在需要对单个IO口进行 Toggle 操作时即对当前输出取反输出当前输出为高则输出低当前输出低则输出高官方的库函数就是直接对 ODR 寄存器进行操作的。代码如下 void HAL_GPIO_TogglePin(GPIO_TypeDef* GPIOx, uint16_t GPIO_Pin) {/* Check the parameters */assert_param(IS_GPIO_PIN(GPIO_Pin));GPIOx-ODR ^ GPIO_Pin; }这是因为0 和 1 与 1 进行异或操作被取反0 和 1 与 0 进行异或操作保持原值。如下 0 ^ 1 1 1 ^ 1 00 ^ 0 0 1 ^ 0 1
http://www.w-s-a.com/news/357627/

相关文章:

  • 网站批量创建程序中国十大人力资源公司
  • 菏泽网站建设 梧桐树二次开发创造作用
  • 维护网站费用长沙广告设计公司排名
  • 模仿别人网站侵权wordpress 修改链接失效
  • wordpress文章设置受密码保护南宁网站优化公司哪家好
  • 网站开发工程师介绍设计类的网站
  • 嘉兴seo网站推广中山建网站多少钱
  • 高端汽车网站建设帮别人做网站自己为什么会被抓
  • 网站开发实验室建设方案wordpress 主题丢失
  • 珠宝网站建设平台分析报告郑州最新发布
  • 世界杯最新排名泉州seo网站关键词优
  • 广州公司网站提供如何推广新品
  • 网站建设如何描述沈阳网站建设推广平台
  • 用dw制作个介绍家乡网站学生个人简历
  • 建设银行企业网站访问不了wordpress搬到谷歌服务器
  • 网站建设与网站优化销售别墅庭院园林景观设计公司
  • 沈阳红方城网站建设专业的微网站哪家好
  • 医院网站asp东营信息发布平台
  • 网站全站建设开题报告范文南京本地网站
  • 网站漏洞扫描工具wampserver集成环境搭建了一个织梦cms网站
  • 如何在局域网上做网站宁波设计公司排行榜
  • 自己的电脑做网站服务器吗百度搜索风云榜总榜
  • 做化妆品的一些网站企业网站建设与营运计划书
  • 重庆速代网络科技seo整站优化服务教程
  • 成都比较好的装修设计公司seo3的空间构型
  • 开发商建设审批网站成都创意设计公司
  • 百度快照比网站上线时间早wordpress新建阅读量字段
  • 国家工程建设标准化协会网站网站开发工具有
  • 上海网站建设集中公关公司组织架构图
  • wordpress副标题的作用百度网站标题优化