项目简介利用cubmx生成基于32单片机的hal库工程,然后编写程序在proteus上仿真验证。本项目最适合没有开发板的同学学习,零成本利用仿真软件率先入门stm32单片机。本项目需要实现的功能就是利用cubmx配置外部中断,由外部按键触发外部中断,控制led灯的状态改变,并在proteus上仿真验证。
硬件模块stm32f103r4
led灯
开关button等
软件工具cubmx
proteus
keil
电路连接图
工作流程首先,创建好cubmx工程,pa1作为led灯输出端,pa2作为外部中断触发端。
设置好相应的gpio参数。
使能外部中断
其余按照自己的习惯,也可以默认
最后生成代码即可。
左边stm32f1xx_it.c中有系统中断的相关函数,在main.c中只是对外部中断的引脚进行设置并使能。需要在stm32f1xx_it.c中查找使用相应的函数才能实现需要的功能。
首先在stm32f1xx_it.c中找到exti2_irqhandler(void)函数,
再进入hal_gpio_exti_irqhandler(gpio_pin_2)中断服务函数,里面主要有两个函数,一个复位__hal_gpio_exti_clear_it(gpio_pin),另一个是回调函数hal_gpio_exti_callback。
我们需要把自己想要的功能写到回调函数中hal_gpio_exti_callback并添加到main.c文件中即可。
接下来,我们需要创建一个proteus工程,用来验证功能。
开始验证。默认情况下led端是高电平,即灯是灭的。
按下按键后,灯亮了。
再按又灭,继续按又亮,以此往复,功能成功实现。
程序代码main.c
int main(void){ /* user code begin 1 */ /* user code end 1 */ /* mcu configuration--------------------------------------------------------*/ /* reset of all peripherals, initializes the flash interface and the systick. */ hal_init(); /* user code begin init */ /* user code end init */ /* configure the system clock */ systemclock_config(); /* user code begin sysinit */ /* user code end sysinit */ /* initialize all configured peripherals */ mx_gpio_init(); /* user code begin 2 */ /* user code end 2 */ /* infinite loop */ /* user code begin while */ while (1) { /* user code end while */ /* user code begin 3 */ } /* user code end 3 */}...../* user code begin 4 */void hal_gpio_exti_callback(uint16_t gpio_pin){ unsigned i; i=5000; while(i--); //hal_delay(20);//延时函数消抖,防止误触发 if(hal_gpio_readpin(key_gpio_port,key_pin)==0) { hal_gpio_togglepin(led_gpio_port,led_pin);//翻转led电平 }}/* user code end 4 */
国产芯片和进口芯片差距究竟有多远?芯片的国产化只能靠BAT了吗?
72V300Ah的电池组使用磷酸铁锂如何组装
芯片补贴竞赛正在进入加速道
昊芯闻丨中科昊芯荣获“创芯中国”集成电路创新挑战赛总决赛优胜奖!
紧凑的无电感升压电路可调节白光LED偏置电流
STM32单片机学习笔记(8):外部中断
零跑汽车全新车型T03设计图曝光采用了5门4座设计
电动机保护器选型方法_电动机保护器安装步骤教程
PEX8714 PCIe芯片Broadcom
浅谈C919飞机技术路线
机器人进行电缆管道清障工作,用时19分钟
通过硬件在环技术,NI 的FlexRIO内的FPGA芯片减少混合动力发动机94%的启动测试时间
由浩博光电深度剖析LED企业的现在及出路
大族激光推出30W紫外皮秒激光器,获验证认可已量产上市
串口与并口硬盘的区别
LED阵列恒流恒压驱动电路
CES热点观察:乐视、小米无边框电视到底哪家强?
重庆苏宁编制物流配送网极限缩短配送距离
多功能控制器SunFounder MagicKey的使用方法
轴承套圈的金属流线—热处理工艺对轴承尺寸稳定性的影响