STM32的io口操作

刚刚提了个问,不小心给提交解决了。我使用的是STM32f103c8的芯片,刚刚吧开发环境搭建好,写了第一个程序,但是相应的io没反应。程序运行没错误,生成了HEX文件。下面我附上程序。请指教下,谢谢。
#include "stm32f10x.h"

void Delay(__IO u32 nCount);
void LED_GPIO_Config(void);
/*
* 函数名:main
* 描述 :主函数
* 输入 :无
* 输出 :无
*/
int main(void)
{
/* 配置系统时钟为72M */
SystemInit();

/* LED 端口初始化 */
LED_GPIO_Config();

while (1)
{
GPIO_SetBits(GPIOB, GPIO_Pin_4 ); // 亮
// Delay(0x8FFFEF);
// GPIO_ResetBits(GPIOB, GPIO_Pin_4 ); // 灭
}
}

void Delay(__IO u32 nCount)
{
for(; nCount != 0; nCount--);
}

/******************* (C) COPYRIGHT *****END OF FILE****/

/*
* 函数名:LED_GPIO_Config
* 描述 :配置LED用到的I/O口
* 输入 :无
* 输出 :无
*/
void LED_GPIO_Config(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd( RCC_APB2Periph_GPIOB, ENABLE);

GPIO_InitStructure.GPIO_Pin = GPIO_Pin_4;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_Init(GPIOB, &GPIO_InitStructure);

GPIO_SetBits(GPIOB, GPIO_Pin_4 ); // turn off all led
}

确定是置1点亮LED,不是清0点亮?可以试试置1清0都有延时的程序(如下),应该会亮灭交替(原来的程序中少了延时)。如果不行,就置1后用万用表测量对应端口,看对不对。还要检查电路是否外部接电源或地的。
while (1)
{
GPIO_SetBits(GPIOB, GPIO_Pin_4 ); // 亮
Delay(0x8FFFEF);
GPIO_ResetBits(GPIOB, GPIO_Pin_4 ); // 灭
Delay(0x8FFFEF);
}追问

不行感觉好像没有将GPIO口初始化成功。依旧什么反应都没,我只是控制亮或者灭都不行。

不行感觉好像没有将GPIO口初始化成功。依旧什么反应都没,我只是控制亮或者灭都不行。

追答

是在线调试的,还是下载到目标板上的?
用的是keil?

追问

吓到目标板上,用的是keil

追答

说不定是下载问题,直接在线调试来试试
注意keil中RAM,ROM地址设置要正确,debug选项也要选好。

追问

因为这个板子是之前学51的,当时学51一起买,所以不知道要Jlink,所以就只是买了芯片,不能在线仿真。是一套51和avr。stm32一起的。不过遗憾当时没买仿真线

追答

是生成hex文件,然后用Cortex-M3 STM32 ISP软件通过串口下载的?
下载有没有什么提示信息?还是就是成功的?
板子上的boot0和boot1,还有USART的跳线有没有问题?

追问

我找到问题了,但是我不知这两句是什么思RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);。第一个就是RCC_APB2Periph_AFIO使能,另外一个就是下面接着那句。

追答

没注意到端口的选择.PB4默认功能是JTAG的TRST,要让它工作在GPIO的PB4模式需要使用端口重映射,所以要给端口重映射模块时钟和关闭调试功能.
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOB| RCC_APB2Periph_AFIO, ENABLE);中的RCC_APB2Periph_AFIO就是给端口重映射模块的时钟使能.
GPIO_PinRemapConfig(GPIO_Remap_SWJ_Disable, ENABLE);就是关闭调试功能

温馨提示:答案为网友推荐,仅供参考
相似回答