完善资料让更多小伙伴认识你,还能领取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<
|
|
|
相关推荐
|
|
1328 浏览 1 评论
1070 浏览 0 评论
936 浏览 0 评论
STM32F405驱动DS1302时钟模块,输出时间错乱该怎么排查?
5174 浏览 2 评论
stm32f405rgt6驱动DS1302ZN出现时间错乱问题
3974 浏览 1 评论
/9
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2025-12-14 08:04 , Processed in 0.921851 second(s), Total 38, Slave 28 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191

淘帖