“STM8 UART接收中断程序”的版本间的差异
小 (文本替换 - 替换“www.waveshare.net”为“{{SERVERNAME}}”) |
小 (文本替换 - 替换“http://{{”为“https://{{”) |
||
第13行: | 第13行: | ||
<table border="0" cellpadding="0" cellspacing="0" width="120"><tbody><tr><th align="center" bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="font-size: 12px; color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">软件设计</th></tr></tbody></table> | <table border="0" cellpadding="0" cellspacing="0" width="120"><tbody><tr><th align="center" bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="font-size: 12px; color: rgb(255, 255, 255); line-height: 20px; font-family: Arial, Helvetica, sans-serif;">软件设计</th></tr></tbody></table> | ||
/********************************************************************* | /********************************************************************* | ||
− | 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href=" | + | 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="https://{{SERVERNAME}}/" style="color: rgb(7, 66, 184);">http://www.waveShare.net |
目标系统: 基于STM8单片机 | 目标系统: 基于STM8单片机 |
2021年6月18日 (五) 18:00的最新版本
<tbody></tbody>
使用STM8的USART进行自发自收(将发送引脚RXD短接到接收引脚TXD),发出数据:0,1,2。。。数据,能接收到自己发出的数据:0,1,2。。。使用LED作出简单指示! | |
---|---|
<tbody></tbody>
| |
<tbody></tbody>
/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="https://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net 目标系统: 基于STM8单片机 应用软件: Cosmic CxSTM8 说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
/*---------------------------------------------------------------------- 实验内容: USART自发自收,使用PB口的LED指示接收到的数据,观察是否与发送的数据一致。 硬件连接: 将MCU.RXD与MCU.TXD使用短路帽短接,将PB口的LED指示灯使能开关切换到"ON"状态。 */
void Init_UART3(void) { UART3_CR1=0x00; UART3_CR2=0x00; UART3_CR3=0x00; // 设置波特率,必须注意以下几点: // (1) 必须先写BRR2 // (2) BRR1存放的是分频系数的第11位到第4位, // (3) BRR2存放的是分频系数的第15位到第12位,和第3位 // 到第0位 // 例如对于波特率位9600时,分频系数=2000000/9600=208 // 对应的十六进制数为00D0,BBR1=0D,BBR2=00 UART3_BRR2=0x00; UART3_BRR1=0x0d; UART3_CR2=0x2c;//允许接收,发送,开接收中断 } void UART3_sendchar(unsigned char c) { while((UART3_SR & 0x80)==0x00); UART3_DR=c; } @far @interrupt void UART3_Recv_IRQHandler (void) { unsigned char ch; ch=UART3_DR; LED_PORT=ch; return; } void main(void) { unsigned char i=0; LED_DDR=0XFF; LED_CR1=0XFF; LED_CR2=0X00; Init_UART3(); _asm("rim"); while(1) { UART3_sendchar(i); i++; }; } | |
<tbody></tbody>
短接RXD与TXD能接收到自己发送的数据,断开短接没有接收到数据。 系统不断发送数据:0,1,2。。。若正常接收,将收到0,1,2。。。。 用LED作数据指示,LED往上加,说明系统程序正常执行。 |