完善资料让更多小伙伴认识你,还能领取20积分哦, 立即完善>
开发板是正点原子ALIENTEK MiniSTM32,淘宝买的。程序是用例程修改的,使用PA0、PA、PA2就好使,但是使用PA13、PA14、PA15就不行了,不管怎么弄都是只有PA15,关键的几个点,我列出来: //IO方向设置 #define DS18B20_IO_IN13() {GPIOA->CRH&=0XFF0FFFFF;GPIOA->CRH|=8<<20;} #define DS18B20_IO_OUT13() {GPIOA->CRH&=0XFF0FFFFF;GPIOA->CRH|=3<<20;} #define DS18B20_IO_IN14() {GPIOA->CRH&=0XF0FFFFFF;GPIOA->CRH|=8<<24;} #define DS18B20_IO_OUT14() {GPIOA->CRH&=0XF0FFFFFF;GPIOA->CRH|=3<<24;} #define DS18B20_IO_IN15() {GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=8<<28;} #define DS18B20_IO_OUT15() {GPIOA->CRH&=0X0FFFFFFF;GPIOA->CRH|=3<<28;} //初始化 u8 DS18B20_Init(u8 channel) { GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA, ENABLE); //ʹÄÜPORTA¿ÚʱÖÓ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOA,GPIO_Pin_13|GPIO_Pin_14|GPIO_Pin_15); DS18B20_Rst(channel); //GPIO_PinRemapConfig(GPIO_Remap_SWJ_JTAGDisable,ENABLE); //SWD这句话不知道该不该添加,是自己通过阅读别的程序时凭借理解添加到这里的 return DS18B20_Check(channel); } 通过看原理图得知,PA13、PA14、PA15同时和JTAG复用,不知道是不是这里需要软件将JTAG关闭一下(我使用串口下载程序,JTAG从来不用) |
|
相关推荐
1个回答
|
|
你正在撰写答案
如果你是对答案或其他答案精选点评或询问,请使用“评论”功能。
2005 浏览 1 评论
AD7686芯片不传输数据给STM32,但是手按住就会有数据。
1858 浏览 3 评论
4442 浏览 0 评论
如何解决MPU-9250与STM32通讯时,出现HAL_ERROR = 0x01U
2007 浏览 1 评论
hal库中i2c卡死在HAL_I2C_Master_Transmit
2513 浏览 1 评论
小黑屋| 手机版| Archiver| 电子发烧友 ( 湘ICP备2023018690号 )
GMT+8, 2024-12-20 06:56 , Processed in 0.681162 second(s), Total 73, Slave 55 queries .
Powered by 电子发烧友网
© 2015 bbs.elecfans.com
关注我们的微信
下载发烧友APP
电子发烧友观察
版权所有 © 湖南华秋数字科技有限公司
电子发烧友 (电路图) 湘公网安备 43011202000918 号 电信与信息服务业务经营许可证:合字B2-20210191 工商网监 湘ICP备2023018690号