[STM8] 请问 IAR STM8 单纯操作寄存器,新建工程时main要包含什么文件

[复制链接]
4391|15
 楼主| panxiaoyi 发表于 2021-8-25 22:29 | 显示全部楼层 |阅读模式
  1. #include "iostm8.h"

  2. int main( void )

  3. {

  4.   PA_ODR = 0x04;

  5.   UART_DR = 123;

  6.   return 0;

  7. }
请问 IAR STM8 单纯操作寄存器,新建工程时main.c要包含什么头文件?

如上面的代码,PA_ODR 编译通过,UART_DR 编译错误


请问,我只想单纯操作寄存器,不使用库函数,要包含那些文件?或者说要复制多少个第三方的文件进工程文件夹?


刚入门STM8,刚接触IAR,请大家指教一下,谢谢(以前玩其它单片机基本上都是包含一个文件即可的啊)
 楼主| panxiaoyi 发表于 2021-8-25 22:44 | 显示全部楼层
网上百度了好几个小时,基本上都是千遍一律的 “新建工程--新建一个文件夹--新建几个子文件夹--复制官方库函数--设置环境”
说实话,我按他们的试过都不行,老是编译报错,那些教程好像不建几个“子文件夹”就显的不专业一样
之前学了一点点沁恒的CH32V103,教程也是一上来就新建一堆的文件夹,设置环境,结果,新手的我看的一头雾水,最后我只新建一个工程文件夹,把所有的H和C文件都放在根目录下,还省去了设置环境的麻烦,编译运行也一样可以,新手嘛,还是以最简单的方法点亮LED先,难道新建一堆的子文件夹就是为了点亮一个LED?
 楼主| panxiaoyi 发表于 2021-8-25 22:50 | 显示全部楼层
就好像厨师,锅铲不在空中旋转几个360度,就怕客人说他炒的菜不好吃

言归正传,我只想包含最简单的最基础的文件就可以了,可以操作比如STM8S105K4的所有寄存器即可,希望大家可以指点一下,谢谢
 楼主| panxiaoyi 发表于 2021-8-25 23:39 | 显示全部楼层
下面的代码编译通过,把UART更改成UART1就可以了,没有任何的第三方C和H文件,没有新建任何子文件夹,就是新建一个C工程,写入下面的代码而已,明天实验板到货了再试试点亮LED看看是否可以,多谢各位路过
  1. #include "iostm8.h"

  2. int main( void )
  3. {
  4.   PA_ODR = 0x04;
  5.   UART1_DR = 123;
  6.   SPI_DR=123;
  7.   SPI_CRCPR=123;
  8.   I2C_DR=123;
  9.   
  10.   return 0;
  11. }

foxsbig 发表于 2021-8-26 09:59 | 显示全部楼层
ST一直用的32
看你的程序,有点类似51的意思
8没有例程么?
l4157 发表于 2021-8-26 10:14 | 显示全部楼层
要对应STM8具体型号吧?
#include "iostm8s003f3.h"
#include "intrinsics.h"
#include "define.h"
#include "stdlib.h"
比如,我的STM8S003F3P6的项目,是加上了上面的这些头文件
 楼主| panxiaoyi 发表于 2021-8-26 13:47 | 显示全部楼层
foxsbig 发表于 2021-8-26 09:59
ST一直用的32
看你的程序,有点类似51的意思
8没有例程么?

我看了很多网上的例程啊,就如我2楼所说的,太专业了,一下子接受不了
 楼主| panxiaoyi 发表于 2021-8-26 13:49 | 显示全部楼层
多谢大家的指点,总算入门IAR的操作了,下面的代码测试和仿真正常

没有添加任何 子文件夹,只添加了一个工程主文件夹,没有添加任何外部的C和H文件,只在创建工程时选择一个C工程


感觉这个STM8的单线仿真 真的爽啊,便宜好用,以前老是羡慕AVR的部分型号的单线仿真,但是,那个仿真器不是贵,而是特贵


我都不明白,以前的AVR,现在的PIC究竟是靠卖芯片赚钱还是靠卖仿真器赚钱




  1. #include "iostm8.h"

  2. unsigned char A;

  3. int main( void )
  4. {
  5.   //A = CFG1_GCR;             //全局配置寄存器(CFG_GCR)
  6.   A = FLASH_CR1;            //FLASH控制寄存器 1(FLASH_CR1)
  7.   A = RST_SR;               //复位状态寄存器(RST_SR)
  8.   A = CLK_ICKR ;            //时钟
  9.   A = ITC_SPR1;             //软件优先级寄存器
  10.   A = WWDG_WR;              //窗口寄存器(WWDG_WR)
  11.   A = TIM1_CR1 ;
  12.   A = SPI_CR2 ;
  13.   A = I2C_CR1 ;
  14.   A = UART1_DR ;
  15.   A = CAN_MCR ;
  16.   A = ADC_CR1 ;

  17.   PE_DDR_DDR5=1;            //输出
  18.   
  19.   while(1)
  20.   {
  21.     asm("nop");
  22.     PE_ODR_ODR5=0;          //LED测试
  23.     asm("nop");
  24.     PE_ODR_ODR5=1;
  25.   }
  26. }


diweo 发表于 2021-8-26 14:24 | 显示全部楼层
可能很多人写了很多代码和工程了,但还是讲不清楚编译器在编译工程的时候到底是怎么回事。
e21 发表于 2021-8-26 17:42 | 显示全部楼层
原则就是: 你用到什么就添加什么,没用到的多加了也没什么问题.
文件夹随你意,想怎么建就这么建,分多少个都行,没什么限制,文件怎么放都行,只要你把他们都包含在项目里面都能找到就好. 一般不用中文名字,因为有些时候不支持中文.不用一个文件夹是堆在一起文件太多不好找,按功能类别分几个比较好找.
foxsbig 发表于 2021-9-6 10:59 | 显示全部楼层
那就一点一点的加,用到什么加什么。
把底子搭建好了,后面就顺了
这个系列,好在资源不多。
paotangsan 发表于 2021-9-10 10:14 | 显示全部楼层
我都是直接用cube直接生成了
renzheshengui 发表于 2021-9-10 10:18 | 显示全部楼层
这个倒是没有关注过
wakayi 发表于 2021-9-10 10:20 | 显示全部楼层
如果发现报错  就想办法解决错误  没有错误了 就说明没有问题了
wowu 发表于 2021-9-10 10:27 | 显示全部楼层
拿过一个工程来 抄一抄就知道了
xiaoqizi 发表于 2021-9-10 10:29 | 显示全部楼层
是否单纯操作寄存器关系都不大
您需要登录后才可以回帖 登录 | 注册

本版积分规则

53

主题

417

帖子

2

粉丝
快速回复 在线客服 返回列表 返回顶部