历史上的今天
返回首页

历史上的今天

今天是:2024年11月27日(星期三)

正在发生

2019年11月27日 | STM8S103F3P6核心板学习笔记

2019-11-27 来源:eefocus

开发板与仿真器连接:

blob.png?imageView2/2/w/550

新建一个项目:


    1-启动IAR,选择Project->Create New Projects…


    2-选择C


    3-然后选择路径并指定文件名,然后按Save保存


    4-然后选Project->Options…设置项目属性


    5-General options -> Target -> Device -> STM8S -> STM8S103F3P


    6-Debugger -> Setup -> Driver -> ST-LINK


    7-Debugger -> ST-LINK -> 选中Verify


编译运行项目:


    1-选择Project -> Make,编译项目


    (如果需要重新编译这个项目,可以选择Project -> Rebuild All)


    2-选择Project -> Download and Debug, 把编译好的文件下载到电路板


    3-选择Debug->Go运行程序


用IAR调试程序:


    Toggle Breakpoint: 设置断点,程序运行到断点时会自动暂停


    执行Download and Debug之后:


    Go: 运行整个程序


    Reset: 重置程序,回到第一行


    Step over: 执行一条语句


    View:


    Disassembly: 显示C语言对应的汇编


    Locals: 显示变量的值


    Registers: 显示寄存器的值


    Memory: 显示内存的内容


/***************************************************************************/


外部中断处理函数:(不是所有I/O都支持EXTI,reference manual P66)


外部中断设置:(头文件 #include )


    1-Px_CR2寄存器:enable Portx external interrupt


    2-EXTI_CR1寄存器:设置触发条件(Page 70 of Reference manual)


    3-打开全局中断:__enable_interrupt()


    -每组I/O口的中断号(IRQ number)都不同,Datasheet P43


    -函数名可以任意。例如PORTA_EXTI_Handler()


IAR语法:  


 #pragma vector = 中断号+2

 

 __interrupt void PORTA_EXTI_Handler(void)

 

{

 

}

 


/***************************************************************************/


USB转串口于STM8连接:(把USB转串口上的跳线帽拨到3.3V处)                       

blob.png?imageView2/2/w/550

主要寄存器共12个,常用的有5个:


    UART_SR:保存串口控制器的状态


    UART_DR:保存接收或者发送的数据


    UART_CR2:设置串口模式


    UART_BRR1:设置波特率(baudrate)


    UART_BRR2:设置波特率(baudrate)


    其他:保持默认设置,即使用串口8-n-1模式



波特率具体取值可以计算,也可以参考Reference Manual的22.3.4节的Table 54


用特殊的语法定义,例如:


#pragma vector = UART1_T_TXE_vector

 

__interrupt void UART1_T_TXE_Handler(void) {}

 

#pragma vector = UART1_R_RXNE_vector

 

__interrupt void UART1_R_RXNE_Handler(void) {}

其中#pragma vector和__interrupt是固定的语法:


    UART1_T_TXE_vector指定这个中断处理函数是用来处理串口发送完毕中断


    UART1_R_RXNE_vector指定这个中断处理函数是用来处理串口接收中断


    UART1_T_TXE_vector和UART1_R_RXNE_vector在头文件iostm8s103f3.h中定义


    UART1_T_TXE_Handler()和UART1_R_RXNE_Handler()函数名可以是任意


    *中断处理函数的内容要尽可能的短小,以免影响主程序的运行


 


/**************************************************************/


定时器的时钟频率可以设置:


    Timer1的时钟频率 = fCK_PSC / (PSCR[15:0]+1)


    Timer2/3的时钟频率 = fCK_PSC / 2^PSCR[3:0]


Update Interrupt :


设置中断发生的周期:ARR(Auto-reload register)


    中断发生频率 = 定时器频率 / (AAR+1)


    产生中断的时间 = 1 / 中断发生频率


以Timer2为例,假设主频为16MHz


    TIM2_PSCR = 0x07;   // psc=7 => prescaler=2^7 =128 => 定时器频率=16MHz/128=125KHz



*退出中断前需要对相应的状态位清零。

推荐阅读

史海拾趣

Beck IPC GmbH公司的发展小趣事

为了进一步增强公司的竞争力,Beck IPC积极寻求与其他优秀企业的收购与合作机会。在某一时期,公司成功收购了一家在边缘网关系列产品领域具有领先地位的企业。通过这次收购,Beck IPC不仅获得了更多先进的技术和产品,还进一步巩固了其在工业物联网领域的地位。此外,公司还与多家知名企业建立了战略合作关系,共同推动行业发展。

晶群科技(Gem-micro)公司的发展小趣事

Beck IPC始终坚持以研发和创新为核心驱动力。公司每年投入大量资金用于研发新技术和产品,并建立了完善的研发团队和体系。通过不断的技术创新和产品升级,Beck IPC始终保持着在嵌入式通讯和工业物联网领域的领先地位。同时,公司还积极参与国际标准制定和行业交流活动,为推动行业发展贡献自己的力量。

HTC Korea(TAEJIN Technology )公司的发展小趣事

近年来,HTC在VR领域取得了显著的成就。2023年,在美国国际消费性电子展(CES)中,HTC推出了最先进的虚拟实境头戴式显示器VIVE XR Elite,凭借其创新、高规格的设计和巧妙的人体工学设计,赢得了众多国际媒体的赞誉和奖项。此外,HTC还开发了多款VR内容套件和追踪器,为用户提供了更加沉浸式的虚拟体验。这些努力不仅推动了VR产业的发展,也为HTC带来了新的增长点。

Emerson公司的发展小趣事

进入20世纪,Emerson迎来了一系列技术突破。1903年,公司成功研发出马力超过1/2的电机,这些电机被广泛应用于洗衣机、缝纫机等家用电器,进一步拓宽了公司的业务范围。此外,Emerson还积极开拓海外市场,通过并购和战略合作,逐步将业务拓展至全球范围。

EUCHNER公司的发展小趣事

随着全球化的发展,EUCHNER公司开始实施国际化战略,加强在全球市场的布局。公司在世界各地设立了多个分销处和办事处,以便更好地满足不同国家和地区的市场需求。同时,公司还积极与国际知名企业建立合作关系,共同推动工业自动化领域的进步。通过国际化战略和全球布局,EUCHNER公司的品牌影响力得到了进一步提升。

DURAKOOL公司的发展小趣事

随着技术的不断进步,DURAKOOL公司不断投入研发,推出了一系列创新产品,如Durakool接触器和电流互感器。这些产品凭借其高可靠性和稳定性,在电力监控和智能计量等领域得到了广泛应用。公司也逐渐扩大了市场覆盖范围,不仅在美国本土取得了成功,还逐步进入国际市场。

问答坊 | AI 解惑

2009年六款最佳智能手机,你拥有了么?

据国外媒体今日报道,美国市场分析机构Gartner表示,智能手机是今年手机市场增长最快的领域,今年第三季度的销量已经从2008年第四季度的超过3.18亿部增长至4.11亿部。     随着诺基亚及其Symbian OS手机的主导地位逐渐下滑,智能手机的市场竞 ...…

查看全部问答>

小型变压器引线焊接?

换小型变压器初级线圈外引线时,漆包线不是太好上锡,请问有没有好的方法可以安全、牢固、方便的焊上外引线?初级线圈漆包线很细,焊上外引线后容易断裂,有没有好的方法固定?…

查看全部问答>

基于Windows CENET的串行通信的实现.pdf

基于Windows CENET的串行通信的实现.pdf…

查看全部问答>

SHLoadDIBitmap这个函数并不是所有bmp结尾的图片都能显示?

我发现在我的wince5.0系统里,只有一个像素32位的图片才能显示,其他的都不行?…

查看全部问答>

如何根据VID来自动加载USB驱动

一个复合型USB设备(包含HID类接口和其他类型接口). 已经写了一个CE驱动. 工作OK. 可是第一次插入该USB设备都要输入USB驱动名称. 请问能否象HID设备那样. 自动到注册表中找该驱动. 我想根据VID来找到这个驱动程序. 应该怎么做才好?…

查看全部问答>

有关GPRS模块

我用的周立功的ZWG-13A模块,指令集都是AT的。在Windows环境下已经可以进行拨号了。 可是在Linux条件下,通过minicom进行调试时没有反应,用wvdialconf也检测不到波特率,不知是何原因。请教各位达人…

查看全部问答>

有谁买过特权同学设计的SF-NIOS2开发板?我最近使用发现存在缺陷

最近使用了配置芯片,但是.sof和。elf文件下载到芯片中,下电后然后上电,板子不运行。。在CPU中已近把复位向量还成了epcs控制器,异常向量改成了SDRAM````````````````````````现在这个板子都已近下架了,找不到售后了,我擦,悲剧。。。花了我480 ...…

查看全部问答>

单片机求助

用8051设计的数显电子秤。。用什么型号的压力传感器配合什么型号的放大器比较好(放大后的电压范围为0-5V最好)…

查看全部问答>