OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 6740|回复: 11

关于GPIO库函数到寄存器版本的问题

[复制链接]

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
发表于 2014-5-23 21:03:27 | 显示全部楼层 |阅读模式
5金钱
最近研究语音模块,卖家给的源码是RCT6的库函数版本的,由于用了SPI3,RBT6没有SPI3所以一行一行改为RBT6的寄存器版本的,可是这里的GPIO配置却不会了,从没有接触过库函数,不知道这里怎么修改,我想问的是 代码里说的输出8M波形,寄存器版本的要用PWM吗,看库函数貌似没有用到PWM,还有一种办法是计时然后翻转,这两种方法不知道对不对,
[mw_shl_code=c,true]/* ********************************************************** * 名 称:LD3320_GPIO_Cfg(void) * 功 能:初始化需要用到的IO口 * 入口参数: * 出口参数: * 说 明: * 调用方法: ********************************************************* */ void LD3320_GPIO_Cfg(void) { GPIO_InitTypeDef GPIO_InitStructure; // 配置PA8 输出 8M 波形 { RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA | RCC_APB2Periph_AFIO, ENABLE); /* MCO configure */ GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_AF_PP; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_Init(GPIOA, & GPIO_InitStructure); RCC_MCOConfig( RCC_MCO_HSE); // 8M } // io口配置 { RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOA | RCC_APB2Periph_GPIOB , ENABLE); // LD_CS /RSET GPIO_InitStructure.GPIO_Pin = GPIO_Pin_8 | GPIO_Pin_7 | GPIO_Pin_6;// ; GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; GPIO_Init(GPIOB, & GPIO_InitStructure); // //LD_RD // GPIO_InitStructure.GPIO_Pin =GPIO_Pin_0; // GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz; // GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP; // GPIO_Init(GPIOA, &GPIO_InitStructure); GPIO_SetBits(GPIOB, GPIO_Pin_7); /* A0默认拉高 */ // GPIO_SetBits(GPIOA,GPIO_Pin_0); /*RD默认拉高*/ } }[/mw_shl_code]
还有库函数中配置SPI时候配置了片选信号,寄存器该怎么配置呢,看中文参考手册上IO口的复用也没有这个这个啊


求大神解释

最佳答案

查看完整内容[请看2#楼]

可以设置PA8 MCO输出。。。
正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

38

主题

2061

帖子

6

精华

论坛大神

Rank: 7Rank: 7Rank: 7

积分
3273
金钱
3273
注册时间
2012-1-16
在线时间
37 小时
发表于 2014-5-23 21:03:28 | 显示全部楼层
可以设置PA8 MCO输出。。。
站在巨人的肩膀上不断的前进。。。
回复

使用道具 举报

69

主题

475

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1334
金钱
1334
注册时间
2013-12-28
在线时间
197 小时
发表于 2014-5-23 21:03:28 | 显示全部楼层
回复【7楼】Fisher:
---------------------------------
直接看《开发指南》库函数版本跑马灯实验,再看看寄存器板的这个实验,对比下寄存器版本和库函数版本。
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
 楼主| 发表于 2014-5-23 21:03:28 | 显示全部楼层
 终于解决了,看了b28561173的帖子http://www.openedv.com/posts/list/10090.htm,里面提到了MCO输出8M波形解决了问题。非常感谢各位的帮助,
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
 楼主| 发表于 2014-5-23 21:48:33 | 显示全部楼层
回复【2楼】xiaoyan:
---------------------------------
MCO什么意思啊,
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-23 22:46:05 | 显示全部楼层
回复【3楼】Fisher:
---------------------------------
百度:STM32 MCO
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
 楼主| 发表于 2014-5-24 12:08:58 | 显示全部楼层
回复【4楼】正点原子:
---------------------------------
我查了,PA8输出8M波形我会了,那么下面的PB 6, 7, 8设置50MHZ那一句是什么意思 GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
怎么改呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-24 23:10:17 | 显示全部楼层
回复【5楼】Fisher:
---------------------------------
这是输出速度设置,根据你自己的需要设置即可.
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
 楼主| 发表于 2014-5-25 00:00:57 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
输出速度寄存器版本的怎么设置呢,在哪个例程里面有呢,谢谢原子哥的耐心回答
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
 楼主| 发表于 2014-5-25 08:40:28 | 显示全部楼层
回复【8楼】jiaozhu:
---------------------------------
好的非常感谢
回复

使用道具 举报

6

主题

37

帖子

0

精华

初级会员

Rank: 2

积分
81
金钱
81
注册时间
2013-9-15
在线时间
0 小时
 楼主| 发表于 2014-5-25 11:45:17 | 显示全部楼层
回复【6楼】正点原子:
---------------------------------
上面几个问题都解决了,那么那个片选信号的问题怎么解决,我看了IO口复用图,里面只用到了四个口啊,没有片选信号那一个啊,GPIO_InitStructure.GPIO_Pin = GPIO_Pin_9; //spis 片选 WR
上图中这一句怎么改呢
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165540
金钱
165540
注册时间
2010-12-1
在线时间
2117 小时
发表于 2014-5-26 00:54:23 | 显示全部楼层
回复【11楼】Fisher:
---------------------------------
你学会控制IO,就知道怎么设置片选了。。。
我是开源电子网www.openedv.com站长,有关站务问题请与我联系。
正点原子STM32开发板购买店铺http://openedv.taobao.com
正点原子官方微信公众平台,点击这里关注“正点原子”
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-7-7 18:01

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表