㈠ 利用stm32的单片机完成下面的要求,程序该怎么写,用C语言
用两个定时器分别对两个LED灯闪烁,KEY1和KEY2要设置为外部中断输入,当进入中断时KEY1_DANG或KEY2_DANG指向下一个档位,并且发送串口。给你提供点思路。
void main()
{
while(1)
{
if(key1_dang==0x01)
中断定时1设置为0.2秒
if(key1_dang==0x02)
中断定时1设置为0.4秒
if(key1_dang==0x03)
中断定时1设置为0.6秒
if(key1_dang==0x04)
中断定时1设置为0.8秒
if(key1_dang==0x05)
中断定时1设置为1.0秒
if(key2_dang==0x01)
中断定时2设置为0.2秒
if(key2_dang==0x02)
中断定时2设置为0.4秒
if(key2_dang==0x03)
中断定时2设置为0.6秒
if(key2_dang==0x04)
中断定时2设置为0.8秒
if(key2_dang==0x05)
中断定时2设置为1.0秒
}
}
㈡ 用USB转TTL线怎么把程序烧写到stm32f103C8T6中
用USB转TTL线把程序烧写到stm32f103C8T6中:
1、TXD-接 PA10/USART1_RX
2、RXD-接 PA9/USART1_TX
3、3V3 GND 接供电,将BOOT0接3V3后再供电,即可进入下载模式。
写入程序成功后,将BOO0与BOOT1均置为0。
(2)程序如何写入STM32单片机扩展阅读:
程序烧写的分类以及注意事项:
MCU类可烧录IC
MCU类可烧录IC,目前市场上有很多单芯片控制器(SINGLE MCU)可以通过配套的烧录器进行一次或多次资料烧写。通常仅能烧录一次的MCU被叫做OTPMCU(英文即:ONE TIME PROGRAMBLE MCU),与之相对的是MTP MCU(英文是MULTI TIME PROGRAMBLE MCU)就是可多次烧录的MCU。
OTP MCU通常由生产者在产品装配前通过配套的烧录器一次性把资料烧入,该类IC一经烧录,烧入的资料将无法再次改变
MTP MCU,有别于OTP MCU,本类IC 通过配套的烧录器可以多次烧录,擦写,有的内建FLASHMCU甚至可以烧录不小于10万次。
存储类可烧录IC
存储类可烧录IC:门类众多,如EPROM、EEPROM、NOR FLASH、SPROM、NAND FLASH等等。
EPROM、NOR FLASH、EEPROM、SPROM主要用于存放我们的数据资料或程式,我们已经司空见惯了,跟生产NAND FLASH的厂家比起来可以说生产厂家几乎遍地都是,市面上有相当多的万用烧写器可以把资料烧写进这些IC。
NAND FLASH只有三星等几个生产厂家生产,目前广泛用于U盘、MP3、MP4、ELA和电子词典上。
㈢ 如何生成stm32单片机程序
1,下面以流水灯为例说明STM32CubeMX软件的使用。
2, 第一步,建立并保存工程。
3,启动STM32CubeMX软件,界面如图2所示。
4,点击New Project,在New Project对话框中选择Board Selector标签页,在这里有各种ST评估板可以选择,我们选择STM32F429I-DISCO,最后点击OK,如图3所示。这样就建立起了STM32F429I-DISCO评估板的工程,这个工程已经根据评估板设置好了,然后可以生成相应的代码。
5,为了演示如何使用STM32CubeMX软件,关闭刚刚建立的工程,从头建立一个新的工程。点击New Project,在New Project对话框中选择Mcu Selector标签页,然后在MCU Filter中依次选择STM32F4,STM32F429/439,在下面列表中选择STM32F429ZITx,最后点击OK,如图4所示。
6,新建立的工程界面如图5所示。
㈣ 如何把程序写入单片机
现在的单片机一般:
通过USB(需要装上配套驱动)模拟串口,将用KIEL编译后程序写到单片机;
也可直接用串口与PC相连,将用KIEL编译后程序写到单片机;
更多交流参考我空间文章发。
㈤ STC单片机的c代码可以移植到stm32上吗,要不要做什么修改
换芯片,改电路,底层肯定要重写的。
写程序有个好习惯还是很重要的。下面说一下移植方面的习惯,
提高移植性,最重要的手段就是隐藏硬件实现的细节,把逻辑与底层分开。
举个例子,LED闪一下亮一下,P1_0 = 0; 在51上就是一句话的事。就这一句,就有三个地方涉及硬件,(1)硬件上是P1.0接LED,(2)硬件上低电平亮,相应的是高电平灭,(3)硬件是用的51,用了51独有的位操作。
换个电路,或者换个芯片,这些都要重新改写。假设程序里面有十个地方需要亮灯,移植时就要改十个地方。把亮灯这件事定义成一个函数,或者叫方法,或者叫操作,把具体的操作细节隐藏起来,只表示出做了一件什么事情--亮灯。像这样,void LED_ON( void );在主程序里面,或者说在应用层的程序中调用LED_ON();就是亮灯,具体怎么亮灯,应用程序不管,也不能管,而是由单独的底层程序来做,也就是LED_ON这个函数的内容,是放在单独的一个文件中。用51,就写一个51下的底层,要移植,要用CM3就写一个CM3的底层,主程序可以不用改动,至少是尽量少改动。
为了提高移植性,尽量用标准的C写代码,涉及不同编译系统的实现细节,也要注意隐藏细节,前面的硬件细节,这个算是软件的细节吧。
比如sfr, sbit,interrupt这些,都是51独有的,换到不同的系统上,都需要重写。处理办法也是一样的,隐藏起来,放到单独的底层文件中。
基本上,做到这两步,程序的移植性会提高很多。
再举个小例子吧:
// app.c
#include "bsp.h" // 注意这里不要包含硬件有关的头文件,比如"reg51.h",不要包含在这里。
void main( void )
{
while(1)
{
if ( hasKey())
{
led_on();
delay(100);
led_off();
}
}
// bsp.h
typedef unsigned short uint16_t;
typedef bit bool;
void led_on( void );
void led_off( void );
void delay( uint16_t ms );
bool hasKey( void );
// bsp_for_51.c
#include "bsp.h"
#include "reg51.h"
sbit led = P1^0;
#define ON (0)
void led_on( void )
{
led = ON;
}
void led_off( void )
{
led = !ON;
}
void delay( uint16_t ms )
{
int i;
while( ms-- )
for( i=0; i<100; i++);
}
bool hasKey( void )
{
return ( P0 != 0xFF); // 测试是否有按键?
}
这个是51的系统,换成STM32,简单重写一下bsp.c,不需要改app.c,系统就可以移植过来。
㈥ 对于stm32单片机编写程序的方法有哪两种
寄存器开发方式
固件库开发方式
HAL库开发方式
㈦ keil怎么把程序烧录进stm32
keil 只是写程序的软件,写好程序保存为.c文件,然后添加该文件到源组,然后配置内存,然后编译,就变成.hex文件,然后用烧录软件把.hex文件下载进单片机。
㈧ visualGDB写好程序后,如何下载到单片机中(stm32),(avr)
在工程名称右键选择visualgdb,选项里的DEBUG可以选择安装J-LINK作为调试工具,用它可以单步调试、下载。