小白嵌入式学习-使用stm32103c8t6

发布时间:2026/9/28 13:10:33
小白嵌入式学习-使用stm32103c8t6 按钮实验思路使用推挽模式对输入寄存器GPIO PA1存入01值通过史密斯将高低电平转化为01如果读取GOIO引脚PA1的数值为0按钮按下电路接地输出0反之输出1Stm32读取到PA1的数值后对PA0输出高低电平使对应PMOS/nMOS管导通从而达到按下按钮灯亮松开灯灭效果代码以及注释#include stm32f10x.hint main(void){RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOA,ENABLE);//开启时钟GPIO_InitTypeDef GPIO_Initstruct {0};//结构体定义GPIO_Initstruct.GPIO_Pin GPIO_Pin_0;//选择PA0引脚GPIO_Initstruct.GPIO_Mode GPIO_Mode_Out_PP;//输出推挽模式GPIO_Initstruct.GPIO_Speed GPIO_Speed_2MHz;//输出速率2MHZGPIO_Init(GPIOA,GPIO_Initstruct);//初始化PA0GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//向PA0输入高电平pmos管导通灯亮GPIO_Initstruct.GPIO_Pin GPIO_Pin_1;//选择PA1引脚GPIO_Initstruct.GPIO_Mode GPIO_Mode_IPU;//选择输入上拉模式GPIO_Init(GPIOA,GPIO_Initstruct);//初始化PA1while(1){if(GPIO_ReadInputDataBit(GPIOA, GPIO_Pin_1) Bit_RESET)//如果读取GOIO引脚PA1的数值为0按钮按下电路接地输出0{GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_SET);//对PA0输出一个高电平是Pmos推挽电路导通灯亮}else{GPIO_WriteBit(GPIOA,GPIO_Pin_0,Bit_RESET);//否则对PA0输出一个低电平是Pmos推挽电路接地灯灭}}}中间遇到问题1.灯无法正常亮使用万用表切到蜂鸣挡位查看电路均导通硬件问题排查后查看代码问题原因为使能时钟函数用错红色函数处前期编写错误使用RCC_APB1导致时钟没有开启后续对GPIO的操作都无效

关于本文作者

来自尧图内容编辑团队

尧图内容编辑团队 内容团队

尧图内容编辑团队

本文由尧图网络内容编辑团队执笔。团队由资深项目经理、前端工程师与设计师组成,所有内容均来自亲手交付的真实项目,先讲清问题、再给出可落地的解法。尧图深耕北京网站建设十年,服务过京华建材集团、智造科技等各行业客户,把一线经验沉淀为可复用的行业观察。

  • 十年建站经验,覆盖建材、制造、服务、文创等
  • 项目经理把关选题与事实准确性
  • 工程师与设计师联合撰写专业细节
  • 统一编辑规范,保证文风与排版一致
  • 每月复盘转化数据,迭代选题方向

延伸阅读

相关资讯与近期热门内容

深度阅读推荐

建站决策前值得细读的三篇

网站改版的5个关键决策
2024-08-12

网站改版的5个关键决策

什么时候该改版、改到什么程度、如何避免流量掉光,京华建材集团改版复盘给出答案。

获取专属建站方案

看完文章,把您的行业与预算告诉我们,免费获取一份量身定制的官网建设方案与报价。

立即免费咨询