历史上的今天
今天是:2025年06月27日(星期五)
2020年06月27日 | STM8 UART接收中断程序
2020-06-27 来源:eefocus
系统功能
使用STM8的USART进行自发自收(将发送引脚RXD短接到接收引脚TXD),发出数据:0,1,2。。。数据,能接收到自己发出的数据:0,1,2。。。使用LED作出简单指示!
硬件设计
LED控制电路原理图
UART电路原理图
软件设计
/*********************************************************************
微 雪 电 子 WaveShare http://www.waveShare.net
目标系统: 基于STM8单片机
应用软件: Cosmic CxSTM8
说 明: 若用于商业用途,请保留此段文字或注明代码来源
深 圳 市 微 雪 电 子 有 限 公 司 保 留 所 有 的 版 权
*********************************************************************/
/*----------------------------------------------------------------------
实验内容:
USART自发自收,使用PB口的LED指示接收到的数据,观察是否与发送的数据一致。
----------------------------------------------------------------------
硬件连接:
将MCU.RXD与MCU.TXD使用短路帽短接,将PB口的LED指示灯使能开关切换到"ON"状态。
----------------------------------------------------------------------*/
#include #define LED_DDR PB_DDR #define LED_PORT PB_ODR #define LED_CR1 PB_CR1 #define LED_CR2 PB_CR2 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++; }; } 系统调试 短接RXD与TXD能接收到自己发送的数据,断开短接没有接收到数据。 系统不断发送数据:0,1,2。。。若正常接收,将收到0,1,2。。。。 用LED作数据指示,LED往上加,说明系统程序正常执行。
下一篇:STM8 时钟修改
史海拾趣
|
带异步清0、异步置1 的D 触发器module DFF1(q,qn,d,clk,set,reset);input d,clk,set,reset;output q,qn;reg q,qn;always @(posedge clk or negedge set or negedge reset)beginif (!reset) beginq <= 0; //异步清0,低电平有效qn <= 1;endelse ...… 查看全部问答> |
|
在wince5.0中实现ipinip的问题!帮忙啊!!!谢谢大家了! 是这样的。我的东西需要加到另外一个公司的两个设备中间,他们又不告诉我们他们是怎么做的,他们自己的可以做到。 所以我们在他们能够做到的两边进行了数据的采集。发现,接受的数据是这样的结构:ip header1 + ip header2 + TCP header.然后发出 ...… 查看全部问答> |
|
我的要求:直接写脚本在文件系统中操作开发板上的块设备,包括擦除和写入,以实现远程开发板升级 从网络搜索到的相似问题是: eraseall /dev/mtd2 cp ../../fileName /dev/mtd2 我试了下. CP倒是可以拷贝 ...… 查看全部问答> |
|
北京港震机电技术有限公司是注册于北京市中关村科技园中的一家高新技术企业,由中国地震局地震预测研究所的下属企业与香港企业共同合资建立。作为集产品研发、制造和提供系统解决方案的高科技实体,北京港震公司致力于数字化地震台网(台站)系统以及 ...… 查看全部问答> |
|
我用的HP的Pocket PC,型号是hx2400,如何定制合适的SDK,高手请教教我。困扰了2天了。 我是个菜鸟,现在用EVC4.0开发PDA上的程序,目前有设备,但是没有相应的SDK,这就导致写好的程序无法在合适的环境下编译,我试着自己用PB建立SDK,但还是不行。从网上下载了微软的Pocket PC2003的SDK,但是装上后在EVC下的平台选择中没有该项。在网 ...… 查看全部问答> |
|
只好凑凑文章数了~~~~~~~~~如果要下载程序测试包,请点击:http://blog.ednchina.com/computer00/143918/message.aspx 在万利学习板自带的演示例程中,有几个USB的例程。如果我们想实现一个USB功能,可以拿里面的例子来改。& ...… 查看全部问答> |
|
有如下两个程序,RCC_Configuration用于配置Clock,Timer2_Configuration配置TIM2,能在A0管脚输出10K的PWM波形;把RCC_PCLK1Config(RCC_HCLK_Div4)改成RCC_PCLK1Config(RCC_HCLK_Div2),能输出20K的PWM波,符合期望;但是改成RCC_PCLK1Config(R ...… 查看全部问答> |
|
请见各位 stm32f103vbt6芯片如何读取usb摄像头的图像信息 如何打包再发送出去啊 有相关程序吗 谢谢 可以发我邮箱ahlbzy@126.com… 查看全部问答> |
|
搞了三个星期了,I2C总线模块还是没搞通,参考了TI的例程,也没用,以前F2812时单用IO口模拟过I2C总线,自信对I2C总线协议比较清楚,但I2C寄存器值总是不对,郁闷中。。。。。。 有哪个大侠曾经搞过的,可否提些宝贵意见?… 查看全部问答> |




