OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 4930|回复: 1

STM8库函数开发资源和基本步骤摘要

[复制链接]

221

主题

221

帖子

0

精华

高级会员

Rank: 4

积分
762
金钱
762
注册时间
2021-5-18
在线时间
28 小时
发表于 2021-6-8 13:37:44 | 显示全部楼层 |阅读模式

基于STM8官方标准库建立IAR工程

1. 去ST官网或论坛下载STM8的标准外设库
2. 解压缩下载的压缩包
3. 建立STM8 工程模板文件夹并复制相关文件
  在文件夹下建立四个文件(这个看个人喜好),我喜欢建立一个工程文件夹Project用于存放工程文件,Library文件用于存放库文件,App用于存放用户程序,Doc用于存放说明文档。
  将官方的库文件Libraries文件下STM8S_StdPeriph_Driver这个文件下的内容复制到自己新建的Library文件下,把官方Project文件下Template文件夹下main.c stm8s_conf.h stm8s_it.c 和stm8s_it.h复制到App文件夹下。
4. 给工程添加组和文件
  打开IAR 选择Project->Create New Project->ok,将文件保存到Project文件夹下;右击工程选择Add Group,然后依次添加App组,Libraries组。
  在App和Libraries文件中添加文件。在Libraries中添加标准库中src文件夹里所有的*.c文件。
5. 工程设置
  选择使用的STM8单片机的具体型号,要注意Code和Data的选项。以STM8S103K为例子。
  设置编译器的路径,该路径是寻找*.h的路径。PROJDIR PROJ_DIRPROJ
D
​   
IR指的是工程文件workspace的保存路径,即*.eew文件的路径。…指的是上一级路径,即父目录。
  明白上述两点后,将STM8库文件的inc路径包含进去。

//采用相对路径,这样在将程序移到其它电脑时不必重新设置库函数路径
$PROJ_DIR$\..
$PROJ_DIR$\..\App
$PROJ_DIR$\..\Library\inc

然后设置Debugger模式为ST-Link。至此设置完成,可以编译工程了。
  然后会看到报错!?
  错误提示是没有在头文件stm8s.h中设置芯片类型。那就去设置——打开stm8s.h做修改,对芯片型号进行定义,我们选择的是stm8s103,这里应根据实际芯片类型进行选择。
  然后再次进行编译。会发现还是会报错!??
  这次的错误提示是无法定义ADC2、CAN等等。为什么会出现这种问题?我们继续看stm8s.h文件,里面有说明。
  这里说我们定义STM8S103以后只会去定义ADC1,不会定义ADC2!?实际上,因为8S103芯片上并没有ADC2外设,所以将ADC2、CAN等等没有定义的.c文件从Libraries组移除就好(添加的是STM8S所有的外设的源文件,但是具体要看目标MCU支持哪些外设)。
  移除以后再次进行编译就不会报错了,可以看到有一个warning,那是ST官方的一个库函数有出口参数却没有return语句。
  到此结束,接下来就可以按照自己的需要进行编程调试了。

4、STM8中GPIO的12种模式

原文:https://blog.csdn.net/weibo1230123/article/details/81204776

(1)GPIO_Mode_In_FL_No_IT:浮空输入无中断
(2)GPIO_Mode_In_PU_No_IT:上拉输入无中断
(3)GPIO_Mode_In_FL_IT:浮空输入有中断
(4)GPIO_Mode_In_PU_IT :上拉输入有中断
(5)GPIO_Mode_Out_OD_Low_Fast :开漏-输出低-高速   Output open-drain, low level, 10MHz   
(6)GPIO_Mode_Out_PP_Low_Fast :推挽-输出低-高速   Output push-pull, low level, 10MHz   
(7)GPIO_Mode_Out_OD_Low_Slow :开漏-输出低-低速   Output open-drain, low level, 2MHz   
(8)GPIO_Mode_Out_PP_Low_Slow :推挽-输出低-低速   Output push-pull, low level, 2MHz   
(9)GPIO_Mode_Out_OD_HiZ_Fast :开漏-输出高阻-高速   Output open-drain, high-impedance level, 10MHz   
(10)GPIO_Mode_Out_PP_High_Fast :推挽-输出高-高速   Output push-pull, high level, 10MHz   
(11)GPIO_Mode_Out_OD_HiZ_Slow :开漏-输出高阻-低速   Output open-drain, high-impedance level, 2MHz   
(12)GPIO_Mode_Out_PP_High_Slow :推挽-输出高-低速   Output push-pull, high level, 2MHz
---------------------


stm8的定时器的tim2的通道1,通道2输出pwm,对应的GPIO需要配置吗,如何配置啊?

不需要任何配置的,只需要设置PWM的相关寄存,配置成输下PWM,他自动就输出PWM了

stm8的TIM1和TIM2可以输出PWM,输出管脚是TIM的通道,你可以使用库函数设置
先配置PWM频率,再配置PWM类型,通道,然后再使能定时器,如果需要使用中断,还可以打开中断
/* Time base configuration */
TIM2_TimeBaseInit(TIM2_PRESCALER_1, 999); //2kHz
/* PWM1 Mode configuration: Channel1 */
TIM2_OC1Init(TIM2_OCMODE_PWM1, TIM2_OUTPUTSTATE_ENABLE,CCR1_Val, TIM2_OCPOLARITY_HIGH);
TIM2_OC1PreloadConfig(ENABLE);
/* TIM2 enable counter */
TIM2_Cmd(ENABLE);

原文链接:https://www.yunduoketang.com/article/xianshangjaioyupingtai2.html


正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

1

主题

402

帖子

0

精华

金牌会员

Rank: 6Rank: 6

积分
1023
金钱
1023
注册时间
2019-9-21
在线时间
269 小时
发表于 2021-6-8 15:30:05 | 显示全部楼层
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2024-6-10 04:16

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

快速回复 返回顶部 返回列表