proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

这篇具有很好参考价值的文章主要介绍了proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

前言

之前都是用HAL库+实际单片机进行调试,网上proteus教程多基于51单片机且并非HAL库,本文便基于proteus仿真stm32——流水灯,利用Cube MX+Keil5+proteus来实现8个led依次交替闪烁,并且总结自己踩过的大坑,如有问题请多多指教。

Cube MX配置

芯片选择

proteus能够选择的stm32单片机有限,此次试验采用F103R6进行仿真
proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

SYS、RCC配置

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

GPIO

选择PC0~PC7共8个引脚,且输出模式均设置为高电平,其他不用修改
proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

Clock Configuration

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

其他

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)
基本配置完成后即可生成代码(generate code)

Keil5 代码编写

由于实现工程的代码体量并不大,(相关模式配置及初始化均之前在Cube Mx 中已经完成)以下代码全部写在main.c中即可

宏定义待设置端口位

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

数组初始化

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

led灯控制

/* USER CODE BEGIN PFP */
void led_control(uint8_t led_number)//控制led闪烁的函数,传入参数为所对应的led编号
{
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN_0|GPIO_PIN_1|GPIO_PIN_2|GPIO_PIN_3|GPIO_PIN_4|GPIO_PIN_5|GPIO_PIN_6|GPIO_PIN_7,GPIO_PIN_SET);//将所有led灯都熄灭
	HAL_GPIO_WritePin(GPIOC,GPIO_PIN[led_number],GPIO_PIN_RESET);//对应的led灯点亮
}

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

主函数

  /* USER CODE BEGIN 2 */
	int led_number=0;//定义代表led编号的变量初始化为0
  /* USER CODE END 2 */

  /* Infinite loop */
  /* USER CODE BEGIN WHILE */
  while (1)
  {
    /* USER CODE END WHILE */

    /* USER CODE BEGIN 3 */
		led_control(led_number);//调用控制对应led灯点亮的函数
		HAL_Delay(200);//延时200ms
		led_number++;//led编号加1
		if(led_number==8)//当编号为8时完成一次点亮,将其置0,继续重新依次点亮led
			led_number=0;
  }
  /* USER CODE END 3 */

也可以利用标志位flag实现另外一种流水灯的效果,代码如下,感兴趣或许可以试试
proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

proteus仿真

proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)

详细步骤可以参考:
proteus创建工程、芯片选择、元件配置操作方法
代码不同,不过proteus配置还是完全一样的方法。

建议一步步按步骤来,常见踩坑
第四步:设置晶振8MHZ一定不能省略
led灯连线时注意不能接反
否则到时候没有现象,程序也没有报错,很难找到原因,这时候可能因为自己不熟悉proteus的操作而在某些方面的配置没有谨慎小心

总结

proteus软件原本是主要用于绘制PCB板,辅以仿真功能,如今仿真功能愈加常见。所以用proteus仿真不一定要像实际单片机一样找到其所有引脚对应的原理图才能编写程序,相当于你自己设计其内部电路,用于实现底层设计的正确性,应该熟悉相关基本操作并且注意细节文章来源地址https://www.toymoban.com/news/detail-422334.html

到了这里,关于proteus仿真stm32——流水灯(Cube MX+Keil5+proteus操作详解)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • STM32流水灯

    好的,以下是一篇高质量的CSDN博客STM32流水灯文章: STM32是一种强大的单片机芯片,由STMicroelectronics公司研发。该芯片具有高性能、低功耗和广泛的功能集,可广泛应用于工业控制、车载控制、消费电子等领域。在本文中,我们将介绍如何使用STM32实现流水灯的简单例程程序

    2024年02月06日
    浏览(21)
  • stm32实现流水灯

    目录 一、STM32F103C8实现流水灯  二、注意事项  三、总结 打开keil,创建新项目 选择对应芯片    实验代码 c语言代码 汇编语言 添加驱动文件   烧录,烧录前设置生成hex文件    构筑完成后在项目文件的Objects文件中会生成hex文件 接好线路  hex文件生成后用mcuisp进行烧录 实

    2024年02月05日
    浏览(18)
  • 使用STM32做流水灯

    STM32,从字面上来理解, ST 是意法半导体, M 是 Microelectronics(微电子学) 的缩写, 32 表示32 位,合起来理解, STM32 就是指 ST 公司开发的 32 位微控制器。 1.强大的性能:STM32单片机基于ARM Cortex-M处理器核心,提供高性能的计算能力和快速的指令执行速度。 2.丰富的外设接口

    2024年02月04日
    浏览(22)
  • 利用STM32实现流水灯程序

    keil MDK安装与新建工程 在KEIL MDK官网中下载KEIL MDK ARM,下载链接如下:MDK-ARM Version 5.38a Evaluation Software Request (keil.com),在填写信息后进行安装和下载。 安装后进行以下操作: 右键keil5图标,点击“以管理员身份运行” 进入之后, 点击“ file ”里边的选项“ License Management ”

    2024年02月06日
    浏览(22)
  • 基于stm32的流水灯实现

    主控芯片:  正点原子STM32F103ZET6精英开发板 oled:中景园七针脚0.96寸oled 代码编程软件: keil5 代码下载地址: stm32流水灯项目 希望大家仔细看一看是否符合自己的需求,实际上本文中写到的很多东西已经能为课设所用,理清逻辑后自己编程也很方便的,但如果想直接copy我的项目

    2024年02月07日
    浏览(18)
  • STM32MP157汇编流水灯

    2024年02月07日
    浏览(20)
  • STM32(一):流水灯 (标准库函数)

    STM32F103VET6是一款由意法半导体公司(ST)推出的基于Cortex-M3内核的32位微控制器,硬件采用LQFP48封装,属于ST公司微控制器中的STM32系列。 1.1 简要说明: 该款芯片 为 100引脚 , 512KFlash 64kSRAM LQFP 封装 32位 Cortex内核 内核 Cortex-M3 Flash 512K×8bit SRAM 64K×8bit GPIO 80个 ADC 12位 ADC 三路

    2024年04月10日
    浏览(16)
  • (STM32基础)STM32实现LED闪烁&LED流水灯&蜂鸣器

    1、按照新建工程步骤创建工程,新建start、library、user三个文件夹,从固件库添加相应文件 2、keilkil小程序用来清理listings和objects文件夹中编译产生的中间文件,以后需要打包工程的话可以先用keilkill先清理,这样文件夹会大大缩小所占内存。 在library中可以查看外设函数库,

    2024年02月07日
    浏览(27)
  • STM32——led灯的点亮+闪烁+流水灯的实现

    1.原理 其方式有两种一种是寄存器方式一种是库函数方式,但其原理都是一样的。如原理图所示,与LED相连接的IO口置低电平即可点亮led灯 2.寄存器方式–代码 3.库函数–代码 (1)led.c:函数led_config() (2)main.c调用led_config 4.结果展示 原理:让连接的IO口先置零再置1可以使其先亮

    2024年02月08日
    浏览(20)
  • STM32F103之点亮LED流水灯

    目录 一、设计分析及代码思路 1.实现流水灯步骤 2.代码设计过程 二、创建项目 1.新建项目 2.编写代码 三、仿真运行 四、连接电路 1.器件连接 2.程序烧录 五、代码烧录及实现 1.烧录实现 2.流水灯实现 六、总结  配置时钟使能寄存器 配置端口寄存器 设置输出模式 实物连接及

    2024年04月25日
    浏览(17)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包