打印
[STM8]

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

[复制链接]
3942|15
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
panxiaoyi|  楼主 | 2021-8-25 22:29 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
#include "iostm8.h"

int main( void )

{

  PA_ODR = 0x04;

  UART_DR = 123;

  return 0;

}
请问 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看看是否可以,多谢各位路过
#include "iostm8.h"

int main( void )
{
  PA_ODR = 0x04;
  UART1_DR = 123;
  SPI_DR=123;
  SPI_CRCPR=123;
  I2C_DR=123;
  
  return 0;
}

使用特权

评论回复
5
foxsbig| | 2021-8-26 09:59 | 只看该作者
ST一直用的32
看你的程序,有点类似51的意思
8没有例程么?

使用特权

评论回复
6
l4157| | 2021-8-26 10:14 | 只看该作者
要对应STM8具体型号吧?
#include "iostm8s003f3.h"
#include "intrinsics.h"
#include "define.h"
#include "stdlib.h"
比如,我的STM8S003F3P6的项目,是加上了上面的这些头文件

使用特权

评论回复
7
panxiaoyi|  楼主 | 2021-8-26 13:47 | 只看该作者
foxsbig 发表于 2021-8-26 09:59
ST一直用的32
看你的程序,有点类似51的意思
8没有例程么?

我看了很多网上的例程啊,就如我2楼所说的,太专业了,一下子接受不了

使用特权

评论回复
8
panxiaoyi|  楼主 | 2021-8-26 13:49 | 只看该作者
多谢大家的指点,总算入门IAR的操作了,下面的代码测试和仿真正常

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


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


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




#include "iostm8.h"

unsigned char A;

int main( void )
{
  //A = CFG1_GCR;             //全局配置寄存器(CFG_GCR)
  A = FLASH_CR1;            //FLASH控制寄存器 1(FLASH_CR1)
  A = RST_SR;               //复位状态寄存器(RST_SR)
  A = CLK_ICKR ;            //时钟
  A = ITC_SPR1;             //软件优先级寄存器
  A = WWDG_WR;              //窗口寄存器(WWDG_WR)
  A = TIM1_CR1 ;
  A = SPI_CR2 ;
  A = I2C_CR1 ;
  A = UART1_DR ;
  A = CAN_MCR ;
  A = ADC_CR1 ;

  PE_DDR_DDR5=1;            //输出
  
  while(1)
  {
    asm("nop");
    PE_ODR_ODR5=0;          //LED测试
    asm("nop");
    PE_ODR_ODR5=1;
  }
}


使用特权

评论回复
9
diweo| | 2021-8-26 14:24 | 只看该作者
可能很多人写了很多代码和工程了,但还是讲不清楚编译器在编译工程的时候到底是怎么回事。

使用特权

评论回复
10
e21| | 2021-8-26 17:42 | 只看该作者
原则就是: 你用到什么就添加什么,没用到的多加了也没什么问题.
文件夹随你意,想怎么建就这么建,分多少个都行,没什么限制,文件怎么放都行,只要你把他们都包含在项目里面都能找到就好. 一般不用中文名字,因为有些时候不支持中文.不用一个文件夹是堆在一起文件太多不好找,按功能类别分几个比较好找.

使用特权

评论回复
11
foxsbig| | 2021-9-6 10:59 | 只看该作者
那就一点一点的加,用到什么加什么。
把底子搭建好了,后面就顺了
这个系列,好在资源不多。

使用特权

评论回复
12
paotangsan| | 2021-9-10 10:14 | 只看该作者
我都是直接用cube直接生成了

使用特权

评论回复
13
renzheshengui| | 2021-9-10 10:18 | 只看该作者
这个倒是没有关注过

使用特权

评论回复
14
wakayi| | 2021-9-10 10:20 | 只看该作者
如果发现报错  就想办法解决错误  没有错误了 就说明没有问题了

使用特权

评论回复
15
wowu| | 2021-9-10 10:27 | 只看该作者
拿过一个工程来 抄一抄就知道了

使用特权

评论回复
16
xiaoqizi| | 2021-9-10 10:29 | 只看该作者
是否单纯操作寄存器关系都不大

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

49

主题

393

帖子

2

粉丝