STM8S207_UART1串口发送中断程序

作者&投稿:暴所 (若有异议请与网页底部的电邮联系)
请教一个stm8s103K3的UART1用中断方式发送数据的问题~

//使能接收中断
USART1->CR1|=1<<8; //PE中断使能
USART1->CR1|=1<<5; //1<<5接收缓冲区非空中断使能
USART1->CR1&=~USART_FLAG_TXE;//禁止发送中断
NVIC->ISER[1] |= (1 << (USART1_IRQChannel & 0x1F)); // enable interrupt //中断开启

UART1_MODE_RX_ENABLE你设定的串口为智能读,不能写,应该选择UART1_MODE_TXRX_ENABLE 或 UART1_MODE_TX_ENABLE

void CLK_INIT(void)
{
CLK_CKDIVR = 0x19; /*HSI/8、CPU = 2/2,1M速度*/
CLK_PCKENR1 = 0x04; /*只开启uart1的时钟*/
CLK_PCKENR2 = 0x00; /*打开ADC的时钟*/
}
void IO_INIT(void)
{
PA_CR1 = 0x00; /*推挽输出*/
PA_CR2 = 0x00; /*最大输出为2MHZ,禁止外部中断*/
PA_DDR |= 0x20; /*PA5为输出*/
}
void UART1_INIT(void)
{
UART1_BRR2 = 0x00;
UART1_BRR1 = 0x0d; /*2M的Fmaster下9600的波特率*/

UART1_DR = 0xaa;
UART1_CR2 = 0x08; /*发送完寄存器空,发送使能*/
UART1_CR3 = 0x00; /*1个停止位*/
}
#pragma vector = UART1_T_TXE_vector
__interrupt __root void UART1_TX(void)
{
UART1_SR = 0x00;
UART1_DR = 0xaa;
}
只作为参考,希望对您有帮助,谢谢!

#pragma vector=1
__interrupt void TRAP_IRQHandler(void)
{

}
#pragma vector=2
__interrupt void TLI_IRQHandler(void)
{

}
#pragma vector=3
__interrupt void AWU_IRQHandler(void)
{

}
#pragma vector=4
__interrupt void CLK_IRQHandler(void)
{

}
#pragma vector=5
__interrupt void EXTI_PORTA_IRQHandler(void)
{

}
#pragma vector=6
__interrupt void EXTI_PORTB_IRQHandler(void)
{

}
#pragma vector=7
__interrupt void EXTI_PORTC_IRQHandler(void)
{

}
#pragma vector=8
__interrupt void EXTI_PORTD_IRQHandler(void)
{

}
#pragma vector=9
__interrupt void EXTI_PORTE_IRQHandler(void)
{

}
#ifdef STM8S903
#pragma vector=0xA
__interrupt void EXTI_PORTF_IRQHandler(void)
{

}
#endif
#ifdef STM8S208
#pragma vector=0xA
__interrupt void CAN_RX_IRQHandler(void)
{

}
#pragma vector=0xB
__interrupt void CAN_TX_IRQHandler(void)
{

}
#endif
#pragma vector=0xC
__interrupt void SPI_IRQHandler(void)
{

}
#pragma vector=0xD
__interrupt void TIM1_UPD_OVF_TRG_BRK_IRQHandler(void)
{

CleT1UPF;
PDODR->bit3=(~PDODR->bit3);
}
#pragma vector=0xE
__interrupt void TIM1_CAP_COM_IRQHandler(void)
{

}
#ifdef STM8S903
#pragma vector=0xF
__interrupt void TIM5_UPD_OVF_BRK_TRG_IRQHandler(void)
{

}
#pragma vector=0x10
__interrupt void TIM5_CAP_COM_IRQHandler(void)
{

}
#else
#pragma vector=0xF
__interrupt void TIM2_UPD_OVF_BRK_IRQHandler(void)
{

}
#pragma vector=0x10
__interrupt void TIM2_CAP_COM_IRQHandler(void)
{

}
#endif
#if defined (STM8S208) || defined(STM8S207) || defined(STM8S105)
#pragma vector=0x11
__interrupt void TIM3_UPD_OVF_BRK_IRQHandler(void)
{

}
#pragma vector=0x12
__interrupt void TIM3_CAP_COM_IRQHandler(void)
{

}
#endif
#ifndef STM8S105
#pragma vector=0x13
__interrupt void UART1_TX_IRQHandler(void)
{

}
#pragma vector=0x14
__interrupt void UART1_RX_IRQHandler(void)
{

}
#endif
#pragma vector=0x15
__interrupt void I2C_IRQHandler(void)
{

}
#ifdef STM8S105
#pragma vector=0x16
__interrupt void UART2_TX_IRQHandler(void)
{

}
#pragma vector=0x17
__interrupt void UART2_RX_IRQHandler(void)
{

}
#endif
#if defined(STM8S207) || defined(STM8S208)
#pragma vector=0x16
__interrupt void UART3_TX_IRQHandler(void)
{

}
#pragma vector=0x17
__interrupt void UART3_RX_IRQHandler(void)
{

}
#endif
#if defined(STM8S207) || defined(STM8S208)
#pragma vector=0x18
__interrupt void ADC2_IRQHandler(void)
{

}
#else
#pragma vector=0x18
__interrupt void ADC1_IRQHandler(void)
{

}
#endif
#ifdef STM8S903
#pragma vector=0x19
__interrupt void TIM6_UPD_OVF_TRG_IRQHandler(void)
{

}
#else
#pragma vector=0x19
__interrupt void TIM4_UPD_OVF_IRQHandler(void)
{

}
#endif
#pragma vector=0x1A
__interrupt void EEPROM_EEC_IRQHandler(void)
{

}


手持示波器的所有型号
福禄克Fluke190II系列:Fluke190-204Fluke190-202Fluke190-104Fluke190-102Fluke190-062麦科信MS200系列 :MS207TMS210TMS215TMS220TMS300系列 :MS310ITMS320ITMS400系列 :MS410ITMS410SMS420ITMS420SMS500系列:MS510ITMS520ITMS510SMS520S安捷伦U1600系列:U1620AU1610AU1602BU1604B鼎阳SHS800系列...

求助:急!一张完整详细的同位素表!!!
139 225Rn 226Fr 227Ra 228Ac 229Th 230Pa 231U 232Np 233Pu 234Am 97 98 99 100 140 226Rn 227Fr 228Ra 229Ac 230Th 231Pa 232U 233Np 234Pu 235Am 236Cm Bk Cf Es Fm 141 228Fr 229Ra 230Ac 231Th 232Pa 233U 234Np 235Pu 236Am 237Cm 142 229Fr 230Ra 231Ac 232Th 233Pa 234U 2...

图书的分类有哪些?
TM4 变压器、变流器及电抗器TM5 电器TM6 发电、发电厂TM7 输配电工程、电力网及电力系统TM8 高电压技术TM91 独立电源技术(直接发电)TM92 电气化、电能应用TM93 电气测量技术及仪器TN 无线电电子学、电信技术TN0 一般性问题TN1 真空电子技术TN2 光电子技术、激光技术TN3 半导体技术TN4 微电子技学、集成电路(IC...

背元素周期表有什么用
8?O氧15。999? 9?F氟18。998? 10?Ne氖20。 17? 11?Na钠22。9898 12?Mg镁24。305? 13?Al铝26。982? 14?Si硅28。085? 15?P磷30。 974? 16?S硫32。06? 17?Cl氯35。453? 18?Ar氩39。94? 19?K钾39。098? 20?Ca钙40。 08? 21?Sc钪44。956? 22?Ti钛47。9? 23?V?钒50。94? 24...

急求MV下载地址或网站(格式无所谓但要清晰的)!!!
6 - U;NEE.-.[Call.Call.Call].[MV].avi 大小 : 271M ↑选自专辑: 专辑名称: U;Nee 2nd Album 歌手姓名: UNee 所属语言: 韩语 唱片公司: Synnara Music 发行日期: 2005年2月18日 今年24岁,演员出身的韩国性感舞曲歌手UNEE第二张专辑的主打歌《Call Call Call》的MV在1日之内被点击了10万次,排在...

介绍一下由艾玛罗伯茨(Emma Roberts)演的<一本正经(Unfabulous)>_百度...
“Unfabulous”“一本正经”是一部美国的电视剧。语言: 英语 English 制片国家或地区: 美国 USA 是从2004年开播的,一共有三季(第三季还没播),一共二十几集。主要演员有:EmmaRoberts、Malese Jow、Jordan Calloway.Season 1(更新完毕) :101 - the.party http:\/\/www.megaupload.com\/?d=0TF8...

ASUS笔记本什么是原生什么是非原生
原生的话,刷BIOS刷完还有SLIC信息,非原生的话刷官方BIOS就会失去SLIC信息,得手动刷进SLIC 下面结构是 机器型号 最新BIOS名 是否支持 A8系列(z99通用)原生 A8T\/A8TM\/TC ,Z99Tc 最新BIOS A8T的A8T220AS A8He,Z99He A8He207AS A8Fm,Z99Fm A8Fm211AS A8Je\/A8Jp,Z99Je A8Jpe209AS A8Jn,...

出差必备物品有哪些
笔记本电脑平板耳机充电宝惠普(HP)战99AMD版15.6英寸设计本笔记本电脑(锐龙7nm8核R75800H16G512GSSD+1TB高色域)¥5999店惠普自营旗舰店>>戴尔DELL成就340014英寸轻薄性能商务全面屏笔记本电脑(11代i5-1135G716G512G)¥3789评论:6.9万+店戴尔自营旗舰店>>联想扬天V142021全新酷睿版14英寸超轻薄笔记本电脑i3-10110U8G...

急急急!口袋怪兽高手近来
NO.053(猫老大):由喵喵在28级时进化而来 'S AJ;G8, V7<>viFWxp NO.054(可达鸭):在砂孤乐园水面上遇得 *U.2"j:D nm ^f G NO.055(哥达鸭):由可达鸭在33级时进化而来 =:SeAAd, uj1! |N[n NO.056(猴怪):在112号道路遇得 U.[|[Qlj Bv]5\\R:F NO.057(火爆猴):...

盲拧三阶魔方的二步法和四步法的公式?
057 BL (URB FUL FRU): ULU'R'UL'U'R (8f*)058 BN (URB FUL FLD): F'LB2L'FLB2L' (8f*)059 B Y(URB FUL FDR): F2DB'D'F2DBD' (8f*)060 BK (URB FUL RUF): F2D'FU2F'DFU2F (9f*)061 BZ (URB FUL RFD): UR'B2RFR'B2RF'U' (10f*)062 B S(URB FUL RDB): D'F2DB'...

尖扎县19327722939: STM8S207 - UART1串口发送中断程序 -
温董胃苏: void CLK_INIT(void) { CLK_CKDIVR = 0x19; /*HSI/8、CPU = 2/2,1M速度*/ CLK_PCKENR1 = 0x04; /*只开启uart1的时钟*/ CLK_PCKENR2 = 0x00; /*打开ADC的时钟*/ } void IO_INIT(void) { PA_CR1 = 0x00; /*推挽输出*/ PA_CR2 = 0x00; /*...

尖扎县19327722939: STM8S中串口发送字节问题 -
温董胃苏: Calculate the number of lines per page.PrintPreviewDialog pPDlg; build_os='darwin11.4.0d1' build_vendor='apple'Calculate the number of lines per page.PrintPreviewDialog pPDlg; build_os='darwin11.4.0d1' build_vendor='apple'

尖扎县19327722939: 如何使用STM8S模拟UART -
温董胃苏: uart1_mode_rx_enable你设定的串口为智能读,不能写,应该选择uart1_mode_txrx_enable 或 uart1_mode_tx_enable

尖扎县19327722939: while(USART - GetFlagStatus(USART1,USART - FLAG - TC)!=SET); 是什么意思 -
温董胃苏: 重点看STM32的用户手册,UART支持多种中断,TC是发送完成中断.while (USART_GetFlagStatus(USART1, USART_FLAG_TC) == RESET) 用于检查串口UART1是否发送完成,完成时,TC中断标志置位,退出轮询等待!

尖扎县19327722939: 单片机串口发送数据 -
温董胃苏: 串行在发送前,先是有一低电平起始位,然后跟着是8位数据,再是1位校检位,最后发送高电平结束位,起始结束信号供接收机判断数据发送起始和结束,是单片机在发送数据是自动加上的. 至于校检位,如果你用的话,就会自动放到8位数据后面,用时用软件提取出来

尖扎县19327722939: 串口uart发送出错 -
温董胃苏: 用示波器量一下波形,是否规整,如果信号失真太大.那么不能用高的波特率.一般来讲,115200对于一般的单片机都能达到.再就是传输距离,如果串口总线信号电压是12V,20m没什么太大问题.如果没有电压转换,距离太长了,波特率高了,信号失真太大.接收就会有问题

尖扎县19327722939: 51单片机串口发送 -
温董胃苏: //这是一个单片机C51串口接收(中断)和发送例程,可以用来测试51单片机的中断接收 //和查询发送,另外我觉得发送没有必要用中断,因为程序的开销是一样的 //程序编写: 龚建伟 webmaster@gjwtech.com //技术主页:http://www.gjwtech....

尖扎县19327722939: 关于stm8s单片机串口2的疑问 -
温董胃苏: 首先,你看错程序了 你注意到句一最后有个“;”了吗 也就是说 如果UART2_FLAG_TXE为0,就一直执行这条语句,直到UART2_FLAG_TXE为1才跳过这条语句执行句2;其次, TXE应该是发送数据寄存器为空的 标志位,也就是发送数据寄存器为空的时候为1,不为空也就是还没发送完的时候为0,;所以刚进程序的时候 UART2_FLAG_TXE为1;然后跳过句1到句2,执行发送,发下一字节前先检查上一字节发送是否结束.

尖扎县19327722939: stm8怎么配置uart1成spi1 -
温董胃苏: SLAVE是不用主动进行操作的我没用过STM32,不过可以从SPI接口的原理来解释一下,一般都是按我说的方式工作SPI需要设为MASTER/SLAVE,而且必须一方为主,另一方为从,同步的时钟信号由主设备输出,从设备根据主设备给出的时钟信号进行相应操作.主设备:配置好相关寄存器---->写数据到SPI数据寄存器---->输出时钟脉冲的同时将数据移位输出从设备从设备:配置好相关寄存器---->写数据到SPI数据寄存器---->随着主设备输出的时钟脉冲同时将数据移位输出给主设备

尖扎县19327722939: stm32利用串口发送字符点灯怎么做 -
温董胃苏: 肯定了,你要发完后查询下发送完标志, 就是在 USART_SendData(USART1,*str);//这后面加上下面判断 while(USART_GetFlagStatus(USART1, USART_FLAG_TC));//等待发送完才可以发下一个,不然会被冲掉的.

本站内容来自于网友发表,不代表本站立场,仅表示其个人看法,不对其真实性、正确性、有效性作任何的担保
相关事宜请发邮件给我们
© 星空见康网