完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
首先看我写的代码,为了简化函数,将几项进行固定,speed,初始电平,上下拉全部固定,因此我们的GPIO初始化函数的参数只有两个,port ,pin_num.经过设置以后通过ODR可以控制io口的电平。同时我在程序中参考了原子的程序,实现了位带操作。简化了程序。
#include "GPIO.h" /**************************************************** *函数名: *参数: *返回值: *说明: *****************************************************/ void GPIO_Set_Out(GPIO_TypeDef *GPIO_Port,uint8_t GPIO_Pin_Num) { RCC->AHB1ENR |= 1<<1; GPIO_Port->MODER &= ~(3<<(GPIO_Pin_Num*2)); GPIO_Port->MODER |= 1<<(GPIO_Pin_Num*2); GPIO_Port->OTYPER &= ~(1< GPIO_Port->OSPEEDR |= 3<<(GPIO_Pin_Num*2); GPIO_Port->PUPDR &= ~(3<<(GPIO_Pin_Num*2)); GPIO_Port->PUPDR |= 0<<(GPIO_Pin_Num*2); GPIO_Port->ODR &= 0<
|
|
相关推荐
|
|
991 浏览 0 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
970 浏览 2 评论
2080 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
1177 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
1599 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-11-22 17:59 , Processed in 0.491975 second(s), Total 72, Slave 51 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号