在IAR程序中 PIN_MODE_0什么有意思的微信小程序

stm32&在IAR的第一个程序&点亮led
//使用前要建立好了工程的模板,这个可以参考我的stm32工程模板的建立一文
1:工程文件加入我们的led驱动主要是由led.h和led.c组成,再根据这个写自己的main
led.c的编写
#include "led.h"//这个 是led.h这个头文件&
void led_gpio_init(void)
& & GPIO_InitTypeDef
GPIO_InitS
RCC_APB2PeriphClockCmd(RCC_APB2Periph_GPIOE,
ENABLE);//这个的配置可以查看原理图我的是 & &
GPIO_InitStructure.GPIO_Pin = GPIO_Pin_5;
GPIO_InitStructure.GPIO_Speed = GPIO_Speed_50MHz;
GPIO_InitStructure.GPIO_Mode = GPIO_Mode_Out_PP;
& & GPIO_Init(GPIOE,
&GPIO_InitStructure);
& & GPIO_SetBits(GPIOE,
GPIO_Pin_5);//这个是由不同的板子的led可能是不同的电平点亮的
led.h的编写
#ifndef __LED_H_
#define __LED_H_
//下面的这几个文件一般都是必须要加的
#include "stm32f10x.h"
#include "stm32f10x_gpio.h"
#include "stm32f10x_rcc.h"
void led_gpio_init(void);//对初始化函数的声明
main.c的编写
#include "led.h"
int main()
& led_gpio_init();
& GPIO_ResetBits(GPIOE,
GPIO_Pin_5);//物的是低电平点亮
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。IAR&for&STM8&程序编写学习笔记&--基于IAR&Embedded&Workbench
关闭其他无关软件,进行程序的编写和调试,下载
unsigned&short&无符号短整形&&(0-65535)
typedef&unsigned&short&&&&
void&Delay(uint16_t&nCount)&&
0xFFFF&一共有几位&1111&1111&1111&1111&2*8=16位&<img HEIGHT="20" WIDTH="23"
ALT="IAR&for&STM8&程序编写学习笔记&--基于IAR&Embedded&Workbench"
TITLE="IAR&for&STM8&程序编写学习笔记&--基于IAR&Embedded&Workbench" />=65536
void&Delay(uint16_t&nCount)这个函数在STM8L中基本延时是_us(执行这个语句需要多少周期或者时间)
Configuration&is&up-to-date.&
表示已经make了一次,且程序无修改。
Fatal&Error[Pe035]:&#error&directive:&"Please&select&first&the&target&STM8L&device&used&in&your&application&(in&stm8l15x.h&file)"&C:\Users\Administrator\Desktop\浙台研究\IAR\6\FWlib\inc\stm8l15x.h&53&
可以在下面选择一种&复制到如下图所示的地方
/fxw451/blog/12-03/245336_bdc0a.html
One&of&the&following&macros&must&also&be&defined:
&&&&&&&&-&STM8L15X_MD&for&Medium&Density&devices.(中等密度的设备)
&&&&&&&&-&STM8L15X_MDP&for&Medium&Density&Plus&devices.
&&&&&&&&-&STM8L15X_HD&for&High&Density&devices.
(CLK_SYSCLKDiv_1&)&这里的括号如果是中文格式下得括号,会导致出现&无法识别的错误。
怎么生成下载用的hex文件
编译过后,HEX文件所在位置
STVP下载完成后,要关闭下载器。IAR&下载之后&也要关闭调试的部分
http://www.waveshare.net/article/STM8-3-1-7.htm
在下载完之后,需要调试,需要看寄存器或者其他的调试窗口的,在View&|&Register&
必须连接设备才可以进行调试
STEP&OVER&步进调试&
STEP&INTO&进入函数内部
#include&"stm8l15x.h"
void&DelayMS(unsigned&int&ms)&&//延时时间设置,这里要用到clk时钟配置
&&&unsigned&char&i;
&&&while(ms&!=&0)
&&for(i=0;i&250;i++)
&&{&&&ms--;
&&GPIOC-&DDR&=&0x80;
&&GPIOC-&CR1&=&0x80;&//&将PC7设置成推挽输出
&&GPIOC-&CR2&=&0x00;&&&
&&while(1)
&GPIOC-&ODR&=&GPIOC-&ODR&|&0x80;&
&DelayMS(100);&//延时100ms
&GPIOC-&ODR&=GPIOC-&ODR&&&0x7F;&
&DelayMS(100);&
#include&"stm8l15x.h"
#define&LED1_H()&&&&(GPIO_SetBits&(GPIOE,GPIO_Pin_7))
#define&LED1_L()&&&&(GPIO_ResetBits&(GPIOE,GPIO_Pin_7))
void&CLK_config(void)&
&CLK_SYSCLKDivConfig(CLK_SYSCLKDiv_1&);//预分频为1,系统默认HSI作为时钟,16MHz
void&GPIO_config(void)
&&GPIO_Init&(GPIOE,GPIO_Pin_7,GPIO_Mode_Out_PP_High_Fast);//定义引脚,推挽输出,10MHz,所以电阻取小
void&delay(unsigned&long&i)
&unsigned&int&j;
&for(;i&0;i--)
&&&&for(j=1000;j&0;j--);
void&main(void)
&CLK_config();&
&GPIO_config();
&&LED1_L();
&&delay(500);
&&LED1_H();
&&delay(50);
/thread--1.html
触摸按键可用引脚&STM8L152C
&&&&&&&&&&&&&&&&&PA4&PA5&PA6&两通道一个采样
&&&&&&&&&&&&&&&&&PC3&PC4&&&&&一个通道一个采样
内存占用说明
引脚说明,触摸按键及其和其连接的STM8L内部结构说明
程序参考例程的来源,函数说明以及定义
触摸按键的PCB的焊接和位置说明DM_AN4312.PDF
源代码&source&insight&
直接用官方标准库LCD的测试代码,是STM8L1526&EVAL&板子的,直接烧录会出现乱码&STM8L&Dicovery&的板子,可以修改一下,变成STM8L&Dicovery的LCD库
STVP+STLINK
如何用SWIM接口下载程序,下载不了时的做法
首先插上ST-LINK的四根线,复位脚一定要插,然后随便准备一个程序,下载软件是STVP&
1、按住复位键不放&
2、松开复位脚,立马点下载&
3、重复12步骤
Warning[Pe223]:&function&"LCD_GLASS_ScrollString"&declared&implicitly&C:\Users\Administrator\Desktop\浙台研究\IAR\7\main.c&35&
函数没有声明的意思
void&main(void)
&CLK_config();
&GPIO_config();
CLK_config(void)&会报错
32字节闪存EE&PROM,1字节数据时钟,定时器,液晶显示器,串行通信,接口,接口,模数,,比较器
Stm8l152c6t6(stm-discovery)有几个时钟?
/link?url=jNaG9ZmOMJ7J5EjJ2tPOQPZti-SzzWWv_bPsBFHKAEkQC1TEulGnwCn1LW51_JH6Fw07jlq_0qFkADaMHqfIy_
HSI:高速内部时钟信号,精度较差
HSE:高速外部时钟信号&&精度高&来源(1)HSE外部晶体/陶瓷谐振器(晶振)&&(2)HSE用户外部时钟&
LSE:低速外部晶体&32.768kHz&主要提供一个精确的时钟源&一般作为RTC时钟使用
&&&&&#9312;、HSI是高速内部时钟,RC,频率为8MHz。
  &#9313;、HSE是高速外部时钟,可接石英/陶瓷谐振器,或者接外部时钟源,频率范围为4MHz~16MHz。
  &#9314;、LSI是低速内部时钟,RC,频率为40kHz。
  &#9315;、LSE是低速外部时钟,接频率为32.768kHz的石英晶体。
其中40kHz的LSI供独立IWDG使用,另外它还可以被选择为实时时钟RTC的时钟源。另外,实时时钟RTC的时钟源还可以选择LSE,或者是HSE的128分频。RTC的时钟源通过RTCSEL[1:0]来选择。
up&to&16&MHz&crystal&oscillator&&(HSE)
&&32&kHz&crystal&oscillator&(LSE)
&&Internal&16&MHz&factory-trimmed&RC&(HSI)
&&Internal&38&kHz&low&consumption&RC&(LSI)
&&Clock&security&system
Low&power&RTC
&&BCD&calendar&with&alarm&interrupt
&&Auto-wakeup&from&Halt&w/&periodic&interrupt
Stm8l152c6t6(stm-discovery)总共有多少内存?32字节闪存EE&PROM(电可擦可编程只读存储器--一种掉电后数据不丢失的存储芯片)
&&Up&to&32&KB&of&Flash&program&memory&and
1&Kbyte&of&data&EEPROM&with&ECC,&RWW
&&Flexible&write&and&read&protection&modes
&&Up&to&2&Kbytes&of&RAM
RAM(存储全局变量):RAM-RamdomAccessMemory易挥发性,高速存取,读写时间相等,且与地址无关,如等。
ROM:ROM-Read&Only&Memory。断电后信息不丢失,如计算机启动用的。存取速度很低,(较RAM而言)且不能改写。
LCD占用多少的内存?
LCD:&up&to&4x28&segments&w/&step-up&converter
触摸按键占用多少内存?
轻触按键占用多少内存?
LCD占用多少内存?
16个LCD_RAMRegister
LCD,触摸按键,轻触按键引脚分配,蓝牙通信(预留口)
矩阵键盘(是接多个GPIO还是单个接)需要外加电阻么?上拉或者限流?
STM8L152C6T6介绍
&#9632;&Operating&conditions
&&Operating&&supply&range&1.8&V&to
3.6&V&(down&to&1.65&V&at&power&down)
&&Temperature&range:&-&40&°C&to&85&or&125&°C
&#9632;&Low&power&features
&&5&low&power&modes:&Wait&,&Low&power&run
(5.1&&;A),&Low&power&wait&(3&&A),&Active-halt
with&full&RTC&(1.3&&A),&Halt&(350&nA)
&&Dynamic&consumption:&195&&A/MHz+440&A
&&Ultralow&leakage&per&I/0:&50&nA
&&&wakeup&from&Halt:&4.7&&s
&#9632;&Advanced&STM8&core
&&Harvard&architecture&and&3-stage&pipeline
&&Max&freq.&16&MHz,&16&CISC&MIPS&peak
&&Up&to&40&external&interrupt&sources
&#9632;&Reset&and&supply&management
&&Low&power,&ultrasafe&BOR&reset&with&5
selectable&thresholds
&&Ultralow&power&POR/PDR
&&Programmable&voltage&detector&(PVD)
&#9632;&Clock&management
&&1&to&16&MHz&crystal&oscillator
&&32&kHz&crystal&oscillator
&&Internal&16&MHz&factory-trimmed&RC
&&Internal&38&kHz&low&consumption&RC
&&Clock&security&system
&#9632;&Low&power&RTC
&&BCD&calendar&with&alarm&interrupt
&&Auto-wakeup&from&Halt&w/&periodic&interrupt
&#9632;&LCD:&up&to&4x28&segments&w/&step-up&converter
&#9632;&Memories
&&Up&to&32&KB&of&Flash&program&memory&and
1&Kbyte&of&data&EEPROM&with&ECC,&RWW
&&Flexible&write&and&read&protection&modes
&&Up&to&2&Kbytes&of&RAM
&#9632;&DMA
&&4&&supported&peripherals:&ADC,
DAC,&SPI,&I2C,&USART,&timers
&&1&channel&for&memory-to-memory
&#9632;&12-bit&DAC&with&output&buffer&#9632;&12-bit&ADC&up&to&1&Msps/25&channels
&&T.&sensor&and&internal&reference&voltage
&#9632;&2&Ultralow&power&comparators
&&1&with&fixed&threshold&and&1&rail&to&rail
&&Wakeup&capability
&#9632;&Timers
&&Two&16-bit&timers&with&2&channels&(used&as
IC,&OC,&PWM),&quadrature&encoder
&&One&16-bit&advanced&control&timer&with&3
channels,&supporting&motor&control
&&One&8-bit&timer&with&7-bit&prescaler
&&2&watchdogs:&1&Window,&1&Independent
&&Beeper&timer&with&1,&2&or&4&kHz&frequencies
&#9632;&Communication&interfaces
&&Synchronous&serial&interface&(SPI)
&&Fast&I2C&400&kHz&SMBus&and&PMBus
&&USART&(ISO&7816&interface&and&IrDA)
&#9632;&Up&to&41&I/Os,&all&mappable&on&interrupt&vectors
&#9632;&Up&to&16&capacitive&sensing&channels&with&free
&#9632;&Development&support
&&Fast&on-chip&programming&and&non&intrusive
debugging&with&SWIM
&&Bootloader&using&USART
&#9632;&96-bit&unique&ID
Warning[Pe188]:&enumerated&type&mixed&with&another&type&C:\Users\Administrator\Desktop\浙台研究\IAR\RTC测试程序\Libraries\STM8L15x_StdPeriph_Driver\src\stm8l_discovery_lcd.c&114&
table[0]=RTC_TimeStr.RTC_Hours/10+0x30;
代表0-5的显示个数
/thread--1.html
TIM4定时器&的时间设定&&计算
就是8M晶振下~载不分频的情况下~定时器是怎么计算的啊?比如~TIM4~8位基本定时器~要定1S出来~该怎么算啊~8位的不够的话可以定1MS循环&1000次之类的~偶就是想知道这个定时的算法怎么来的~就像51在12M晶振下定时器是1us的精度~STM8这个在8M晶振下定时器精度是多少啊?怎&么算的啊~
<img HEIGHT="3" WIDTH="578"
ALT="IAR&for&STM8&程序编写学习笔记&--基于IAR&Embedded&Workbench"
TITLE="IAR&for&STM8&程序编写学习笔记&--基于IAR&Embedded&Workbench" />
OK,8M晶振不分频的情况下,TIM4的时钟频率就是8MHz(注意定时器的分频是从fmaster分下来的,CPU也是从Fmaster分下来的,就是说定时器的分频和CPU没关系的),CNTR一个滴答就是1/8M&秒。
TIM4可以设置为2^X分频 ,X从1到7。就是最大为128分频。此时为62.5KHz,CNTR一个滴答就是1/62500&秒&=&16us。如果你设置ARR&=&250,那么TIM4每次中断就是4ms,累计250次就是1S了。
准备STM8L&触摸按键测试的编写与实践&半透镜的购买
在C语言中,static的字面意思很容易把我们导入歧途,其实它的作用有三条。
(1)第一个作用:隐藏。
当我们同时编译多个文件时,所有未加static前缀的全局变量和函数都具有全局可见性。为理解这句话,我举例来说明。我们要同时编译两个源文件,一个是a.c,另一个是main.c。
下面是a.c的内容
#include增加这条语句
char&a&=&‘A‘;&//&global&variable
void&msg()
&&&&&printf("Hello\n");
你可能会问:为什么在a.c中定义的全局变量a和函数msg能在main.c中使用?前面说过,所有未加static前缀的全局变量和函数都具有全局可见性,其它的源文件也能访问。此例中,a是全局变量,msg是函数,并且都没有加static前缀,因此对于另外的源文件main.c是可见的。
如果加了static,就会对其它源文件隐藏。例如在a和msg的定义前加上static,main.c就看不到它们了。利用这一特性可以在不同的文件中定义同名函数和同名变量,而不必担心命名冲突。Static可以用作函数和变量的前缀,对于函数来讲,static的作用仅限于隐藏,而对于变量,static还有下面两个作用。
(2)static的第二个作用是保持变量内容的持久。存储在静态数据区的变量会在程序刚开始运行时就完成初始化,也是唯一的一次初始化。共有两种变量存储在静态存储区:全局变量和static变量,只不过和全局变量比起来,static可以控制变量的可见范围,说到底static还是用来隐藏的。
(3)static的第三个作用是默认初始化为0。其实全局变量也具备这一属性,因为全局变量也存储在静态数据区。在静态数据区,内存中所有的字节默认值都是0x00,某些时候这一特点可以减少程序员的工作量。
最后对static的三条作用做一句话总结。首先static的最主要功能是隐藏,其次因为static变量存放在静态存储区,所以它具备持久性和默认值0。
下面是main.c的内容
除了头文件,需要声明函数:void&msg();
int&main(void)
&&&&extern&char&a;&&&&//&extern&variable&must&be&declared&before&use
&&&&&printf("%c&",&a);
&&&&&(void)msg();
&&&&return&0;
已投稿到:
以上网友发言只代表其个人观点,不代表新浪网的观点或立场。用iar for stm8编了一个程序下到stm8上没反应_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
用iar for stm8编了一个程序下到stm8上没反应
用iar for stm8编了一个程序下到stm8上没反应,为什么程序就是跑不起来???、
#include &iostm8s103f3.h&
void main(void)
PD_DDR=0XFF;
PD_CR2=0X00;
while(1)
PD_ODR=0X00;//PD4,PD5,PD6接共阳发光二极管
我有更好的答案
GPIO_Init(GPIOA我没怎么用过寄存器的;
GPIO_WriteBit(GPIOA;
GPIO_WriteBit(GPIOA,你直接下个库,用库函数写好一点。还有你的系统时钟似乎是没有设置, GPIO_Mode_Out_PP_Low_Fast),GPIO_Pin_3, SET);
Delay(500), GPIO_Pin_3; Delay(500)。我也刚学,前段时间试的PA3输出高低电平的程序如下
需要帮你写吗
为您推荐:
其他类似问题
stm8的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;IAR 环境下 no definition for 怎么解决_百度知道
色情、暴力
我们会通过消息、邮箱等方式尽快将举报结果通知您。
IAR 环境下 no definition for 怎么解决
  编写的程序没有问题。最后make 的时候提示:Error[Li005]: no definition for &FSMC_NORSRAMInit& [referenced from F:&#92;TDDOWNLOAD&#92;双口RAM&#92;Work&#92;App&#92;Debug&#92;Obj&#92; fsmc_sram.o]  &FSMC_NORSRAMInit&这个函数是ST库里&stm32f10x_fsmc.h&的函数,我在我的FSMS_SRAM.C 和FSMS_SRAM.h 这两个中都已经添加了该头文件#include &stm32f10x_fsmc.h&,为什么还报错呢?  解决方法如下:在工程中,注意有一个stdPeriph_Driver 文件夹,右键点击 选择ADD (添加文件),选择ST库里的stm32f10x_fsmc.C这个文件,添加.然后再编译,就没问题了。
为您推荐:
其他类似问题
iar的相关知识
&#xe675;换一换
回答问题,赢新手礼包&#xe6b9;

我要回帖

更多关于 有意思的小程序 的文章

 

随机推荐