关于STM32F103的GPIO等几个问题

[复制链接]
8737|11
 楼主| wilkes 发表于 2010-3-1 09:35 | 显示全部楼层 |阅读模式
最近开始搞stm32开发项目,有几个问题想请教一下:
  1.GPIO的设置,输入和输出怎么切换啊?比如在做模拟I2C时,SDA脚作为数据口,有输入也有输出的时候,怎么切换的,我网上看了一个stm32的例程,好像没有切换输入输出模式,直接用GPIOB->IDR来得到输入值,这样可以吗?
2.stm32初始化部分程序要注意些什么问题呢? 另外各位一般是用lib库函数还是别的方法进行GPIO、RCC、ADC、USART等的设置呢?
3.ADC的用法,怎么用最合理?我现在做三相电压和电流交流采样,并且用到内部测温传感器。
yytdragon 发表于 2010-3-1 10:02 | 显示全部楼层
1、如果你仔细看了他的库函数的使用,就知道IO口的配置可以选为输入或输出
2、注意什么问题,看例程就好了,实在找不到例程的话,可以装个IAR什么的,里面有EXAMPLE
3、不解。。。何为怎么用最合理,看具体需求,精度,速度都是需要考虑的地方
ST_ARM 发表于 2010-3-1 10:10 | 显示全部楼层
1.GPIO的设置,输入和输出怎么切换啊?比如在做模拟I2C时,SDA脚作为数据口,有输入也有输出的时候,怎么切换的,我网上看了一个stm32的例程,好像没有切换输入输出模式,直接用GPIOB->IDR来得到输入值,这样可以吗?

答:用户在应用中,如果需要使用一个GPIO既要用作输入也要用作输出的,可以将该引脚配置为Output-OpenDrain,同时在引脚上连接一个上拉电阻,用户在使用中即可将它用作(准)双向输入输出口。
    输出时: GPIOx->OIDR =输出值;
    输入时: 变量 = GPIOx->IDR;

2.stm32初始化部分程序要注意些什么问题呢? 另外各位一般是用lib库函数还是别的方法进行GPIO、RCC、ADC、USART等的设置呢?

答:stm32初始化部分程序要注意是使能相应的外设的时钟,尤其要注意使能相应的GPIO的时钟,有些功能要使能AFIO的时钟。通常的配置应按照软件库例程的方法配置,但是NVIC的初始化最好在所有的外设初始化完毕后在进行。

3.ADC的用法,怎么用最合理?我现在做三相电压和电流交流采样,并且用到内部测温传感器。

答:关于ADC的用法,如何最合理?这个问题要根据你的实际应用来设定,不同的应用,其使用的合理流程是不一样的,就是三相电压和电流交流的采样,不同的产品上也会不一样。
peng_can 发表于 2010-3-12 13:57 | 显示全部楼层
楼上说得好明白
zwll 发表于 2010-3-12 20:41 | 显示全部楼层
简直太详细了
HonMe 发表于 2010-3-14 11:10 | 显示全部楼层
gxgclg 发表于 2010-3-14 19:48 | 显示全部楼层
NVIC的初始化为什么要在所有外设初始化完毕后再进行呢
ade2010 发表于 2010-3-15 12:50 | 显示全部楼层
顶一下
whf2009 发表于 2011-9-17 10:27 | 显示全部楼层
顶一下
lyy8611 发表于 2011-9-17 20:25 | 显示全部楼层
不错讲的很好啊
suse-lj 发表于 2011-9-17 22:10 | 显示全部楼层
跟7楼 问题一样
ul_shilaike 发表于 2011-9-18 00:47 | 显示全部楼层
俺也来顶一下。。。的确说得很清楚了。。。上面讲的是最好是在所有外设都初始化OK到再初始化NVIC,而不是一定要将NVIC做在最后嘛。。至于为什么最好,就要请教上面的老师了。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

64

主题

147

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部