中级会员
- 积分
- 249
- 金钱
- 249
- 注册时间
- 2018-10-17
- 在线时间
- 40 小时
|
1金钱
本帖最后由 hunkchen2000 于 2024-3-2 12:22 编辑
請位各位大陸同胞~~~~(我是持統一的~)
我參考網友給的DS1302讀寫的程式碼裡面
關於GPIO接口設定的程式碼
void Ds1302_Gpio_Init(void){ GPIO_InitTypeDef GPIO_InitStructure; RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOD, ENABLE); //RST
GPIO_InitStructure.GPIO_Pin =GPIO_Pin_12;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_Init(GPIOD, &GPIO_InitStructure);
//CLK GPIO_InitStructure.GPIO_Pin =GPIO_Pin_10;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_Init(GPIOD, &GPIO_InitStructure);
//IO GPIO_InitStructure.GPIO_Pin =GPIO_Pin_11;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;//推挽输出 GPIO_Init(GPIOD, &GPIO_InitStructure);}
#define DS1302_RST PDout(12)#define DS1302_CLK PDout(10)
#define DS1302_DATIN PDin(11)#define DS1302_DATOUT PDout(11)
#define DS1302_DAT_INPUT() {GPIOD->CRH &= 0XFFFF0FFF;GPIOD->CRH|=8<<12;
#define DS1302_DAT_OUTPUT() {GPIOD->CRH &= 0XFFFF0FFF;GPIOD->CRH|=3<<12;}
請問紅色那兩行程式碼是甚麼意思????我看不懂???我大概知道是把那隻接腳設定成一下子輸出一下子讀寫的狀態,那請問一下如果我不想用PD.11,想改用PB.5那請問我應該如何改紅色部分的程式碼呢????
|
最佳答案
查看完整内容[请看2#楼]
建议下载一个.
那是用于配置IO口工作于输入模式\输出模式的.
用寄存器的方式运行效率高,但你要去找一下哪些位对应哪个脚,如果不能理解,就用库函数GPIO_Init去配置.
|