诚心求教贴 萌新自学stm32 怎么烧写程序芯片IO口输出都没变化

qq_32018941 2018-04-24 05:02:21
萌新自学stm完成毕业设计,从网上买了一块stm32f103c8t6的最小系统版就开始了





用的是STM32 ST LINK Utility 烧录hex文件 三种启动模式的跳线帽形状如 B0- 空 B0+
B1- 空 B1+
这种样子 我一直都是B0- 空
B1- 空
这样连着(应该是flash启动)这里不是很明白 希望大神知道的讲讲 主要问题在下面
然后写了一个程序 是串口通信的 结果发现烧录进去之后完全没反应,所以又试了给IO口电平点亮小灯珠的程序,
也完全没有反应,例如明明想点亮A1口,A1口接灯珠不亮,奇怪的是A12口没有对它进行任何配置,却一直亮着,A12下方的A15脚接灯珠微微亮,其他引脚无论怎么配置无效果 烧写软件应该显示是烧写成功的这是连接A15的图

这是烧写软件的图

下面是主要代码
void GPIO_Configuration(void)
{
GPIO_InitTypeDef GPIO_InitStructure;
RCC_APB2PeriphClockCmd(RCC_APB2Periph_USART1,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);
RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);
GPIO_InitStructure.GPIO_Pin=GPIO_Pin_9;
GPIO_InitStructure.GPIO_Speed=GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_AF_PP;
GPIO_Init(GPIOA,&GPIO_InitStructure);//Êä³öÒý½Å

GPIO_InitStructure.GPIO_Pin=GPIO_Pin_10;
GPIO_InitStructure.GPIO_Mode=GPIO_Mode_IPU;//GPIO_Mode_IN_FLOATING;
GPIO_Init(GPIOA,&GPIO_InitStructure);



GPIO_InitStructure.GPIO_Pin = GPIO_Pin_1|GPIO_Pin_8;//LED GPIO_Pin_All
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
GPIO_Init(GPIOA, &GPIO_InitStructure);
}


int main(void)
{
GPIO_Configuration();
while(1)
{
SystemInit();
GPIO_SetBits(GPIOA,GPIO_Pin_1|GPIO_Pin_8);
delay_ms(500);
//GPIO_ResetBits(GPIOA,GPIO_Pin_12);
//delay_ms(500);
}
}
因为刚学的,不怎么了解,感觉引脚的复用,或者是用mdk编译时那个设置那个72MHz或者8Hz都不怎么懂 感觉都可能出问题 或者干脆是板子坏了 摸不着头脑
求教一下大家,到底是哪出了问题?
...全文
9824 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_37257225 2019-06-26
  • 打赏
  • 举报
回复
代码问题,循环体的错误
依然冷暖 2018-04-25
  • 打赏
  • 举报
回复
看名字 SystemInit 这个不该放到while循环中的
chen_zhenyi 2018-04-25
  • 打赏
  • 举报
回复
系统时钟配置、外设配置(GPIO、中断、UART等)等操作只需要一次操作即可,需要放置在循环外,另外查一下有没有在SystemInit 函数里面配置系统时钟。
weixin_42067094 2018-04-25
  • 打赏
  • 举报
回复
不错不错不粗
weixin_42066419 2018-04-25
  • 打赏
  • 举报
回复
感觉上面大佬说的很清楚了
wudidajundui 2018-04-25
  • 打赏
  • 举报
回复
等等等等,你这个是要实现LED闪烁功能吗? 那你应该把你连接LED哪个GPIO 500ms 电平翻转一次。 你先置1了A1,A8,又置0了A12,这是什么意思?这样灯是不可能闪烁的吧!
wudidajundui 2018-04-25
  • 打赏
  • 举报
回复
感觉一楼说的有关系,把systeminit()放在循环外面试试? 另外,光使用GPIO的话,是没必要开复用功能时钟的把RCC_APB2PeriphClockCmd(RCC_APB2Periph_AFIO,ENABLE);

2,426

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 其他硬件开发
社区管理员
  • 其他硬件开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧