历史上的今天
今天是:2025年06月27日(星期五)
2020年06月27日 | STM8 MAX485串口自收发程序
2020-06-27 来源:eefocus
软件设计
/*********************************************************************
目 的: 建立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
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART1_BRR2=0x00;
UART1_BRR1=0x0d;
UART1_CR2=0x2c;//允许接收,发送,开接收中断
}
void UART1_sendchar(u8 data)
{
while((UART1_SR & 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
// 对应的十六进制数为00D0,BBR1=0D,BBR2=00
UART3_BRR2=0x00;
UART3_BRR1=0x0d;
UART3_CR2=0x2c;//允许接收,发送,开接收中断
}
void UART3_sendchar(u8 data)
{
while((UART3_SR & 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);
}
}
史海拾趣
|
最近想做一个Wince下的程序,能在程序中显示网页。 由于wince不支持htmlview类,所以使用了IWebBrowser2来实现 参考http://www.vckbase.com/document/viewdoc/?id=1145做了一个, 但是程序窗口本身不能显示网页,是另外打开了IE来显示网页。 大 ...… 查看全部问答> |
|
OS Image中已经添加了sdbus和自己的SDHC的驱动、SDMemory,注册表中也添加了相关的设置,现在的情况是:使用类似“DSK1:”这样的名字CreateFile获得的句柄可以通过DeviceIoControl 获得到相应的SD Card的ID,而使用“\\\\Storage Card\\\\VOL:”来C ...… 查看全部问答> |
|
我今天使用 Platform Builder 编译一个模拟器WinCE映像,在编译过程中出错,现在是build.log中的内容,请高手帮我看看,谢谢 Starting sysgen phase for project ( common ) Found localized resources for Languages ( 0404 0407 040C 0410 041 ...… 查看全部问答> |
|
工业应用中有大量系统需要远程数据传输,如远程电表抄写,工业调度监控等。GPRS技术在这些系统中得到广泛应用,如何构建高性价比的方案成为系统设计人员的一个首要问题。 S260是一款极具性价比的嵌入式GSM/GPRS模块。S260工作于900/1800/1900MHz频 ...… 查看全部问答> |
|
刚在论坛上看了一篇名为51单片机编程技巧的文章,上面说静态变量最好放在CODE里,可是如果 放在CODE里给变量付初值以后那是不是这个静态变量的值就能在再改变了,因为是CODE的,只能写不能改写或读出,求解。… 查看全部问答> |
|
我需要通过read_reg()读取VK3224(扩展芯片)寄存器的值,但是在接收中断处理时,接收FIFO中会有好几个数据,导致读取出来的是错误数据,unsigned char send(unsigned char data1,unsigned char data2) { unsigned int temp1, i; unsigned char t ...… 查看全部问答> |




