“STM8 MAX485串口自收发程序”的版本间的差异

来自丢石头百科
(软件设计/*********************************************************************微 雪 电 子 WaveSharehttp://www.waveShare.net目 的: 建立MAX485操作库目标系统: 基于STM8单片机应用软件: Cosmic CxSTM8说 明: ...)
 
(文本替换 - 替换“http://{{”为“https://{{”)
 
(未显示同一用户的1个中间版本)
第2行: 第2行:
 
<table border="0" cellpadding="0" cellspacing="0" style="color: rgb(72, 61, 139); font-family: Arial, 新宋体, 微软雅黑; font-size: 12px;" width="120"><tbody><tr><th align="center" bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="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" style="color: rgb(72, 61, 139); font-family: Arial, 新宋体, 微软雅黑; font-size: 12px;" width="120"><tbody><tr><th align="center" bgcolor="#698192" class="white_12px_b" height="20" scope="col" style="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="http://www.waveshare.net/" style="color: rgb(7, 66, 184);">http://www.waveShare.net
+
微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="https://{{SERVERNAME}}/" style="color: rgb(7, 66, 184);">http://www.waveShare.net
 
 
 
 
 
目 的: 建立MAX485操作库
 
目 的: 建立MAX485操作库

2021年6月18日 (五) 18:01的最新版本

<tbody></tbody>
软件设计

/********************************************************************* 微 雪 电 子 WaveShare <a class="Blue_2_12px_" href="https://wiki.diustou.com/" style="color: rgb(7, 66, 184);">http://www.waveShare.net   目 的: 建立MAX485操作库 目标系统: 基于STM8单片机  应用软件: Cosmic CxSTM8  说 明: 若用于商业用途,请保留此段文字或注明代码来源 深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权 

                                                                                                                                          • /
                                                                                                                                            #include "STM8S207R8.h"
                                                                                                                                            
                                                                                                                                            void Init_UART1(void)
                                                                                                                                            {
                                                                                                                                            		UART1_CR1=0x00;
                                                                                                                                            		UART1_CR2=0x00;
                                                                                                                                            		UART1_CR3=0x00;
                                                                                                                                            		
                                                                                                                                            		// 设置波特率,必须注意以下几点:
                                                                                                                                            		//    (1) 必须先写BRR2
                                                                                                                                            		//    (2) BRR1存放的是分频系数的第11位到第4位
                                                                                                                                            		//    (3) BRR2存放的是分频系数的第15位到第12位,和第3
                                                                                                                                            		//        到第0
                                                                                                                                            		// 例如对于波特率位9600时,分频系数=2000000/9600=208
                                                                                                                                            		// 对应的十六进制数为00D0BBR1=0D,BBR2=00
                                                                                                                                            
                                                                                                                                            
                                                                                                                                            		UART1_BRR2=0x00;
                                                                                                                                            		UART1_BRR1=0x0d;
                                                                                                                                            		
                                                                                                                                            		UART1_CR2=0x2c;//允许接收,发送,开接收中断
                                                                                                                                            		
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            void UART1_sendchar(u8 data)
                                                                                                                                            {
                                                                                                                                            		while((UART1_SR &amp; 0x80)==0x00);
                                                                                                                                            		UART1_DR=data;
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            @far @interrupt void UART1_Recv_IRQHandler (void)
                                                                                                                                            {
                                                                                                                                            	u8 data;
                                                                                                                                            	data=UART1_DR;
                                                                                                                                            	showLine(6,2,lcd_buffer,"0x%x2",(u16)data);
                                                                                                                                            	return;
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            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
                                                                                                                                            		// 对应的十六进制数为00D0BBR1=0D,BBR2=00
                                                                                                                                            
                                                                                                                                            
                                                                                                                                            		UART3_BRR2=0x00;
                                                                                                                                            		UART3_BRR1=0x0d;
                                                                                                                                            		
                                                                                                                                            		UART3_CR2=0x2c;//允许接收,发送,开接收中断
                                                                                                                                            		
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            void UART3_sendchar(u8 data)
                                                                                                                                            {
                                                                                                                                            		while((UART3_SR &amp; 0x80)==0x00);
                                                                                                                                            		UART3_DR=data;
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            @far @interrupt void UART3_Recv_IRQHandler (void)
                                                                                                                                            {
                                                                                                                                            	u8 data;
                                                                                                                                            	data=UART3_DR;
                                                                                                                                            	showLine(6,2,lcd_buffer,"0x%x2",(u16)data);
                                                                                                                                            	return;
                                                                                                                                            }
                                                                                                                                            
                                                                                                                                            main()
                                                                                                                                            {
                                                                                                                                            	u8 tmp=0;
                                                                                                                                            	Init_UART3();
                                                                                                                                            	Init_UART1();
                                                                                                                                            	_asm("rim");
                                                                                                                                            	while(1)
                                                                                                                                            	{
                                                                                                                                            		UART3_sendchar(tmp);
                                                                                                                                            		delay_ms(10);
                                                                                                                                            		tmp++;
                                                                                                                                            		delay_ms(1000);
                                                                                                                                            	}
                                                                                                                                            }