您现在的位置: 主页 > MCU > 单片机技术应用 > IAR+STM8——UART串口发送与中断接收 -
本文所属标签:
为本文创立个标签吧:

IAR+STM8——UART串口发送与中断接收 -

来源: 网络用户发布,如有版权联系网管删除 2018-09-07 

[导读]STM8的UART功能强大,除了常规的串口异步通讯外,还拥有LIN主模式、红外编解码器、智能卡模拟等功能。新手还是从基本的串口通讯入手,那些高级功能等熟练以后再慢慢研究吧。#i nclude

void CLK_init(void)
{

STM8的UART功能强大,除了常规的串口异步通讯外,还拥有LIN主模式、红外编解码器、智能卡模拟等功能。新手还是从基本的串口通讯入手,那些高级功能等熟练以后再慢慢研究吧。

#i nclude

void CLK_init(void)
{
CLK_CKDIVR = 0x08; // 16M内部RC经2分频后系统时钟为8M
}

本文引用地址: http://www.21ic.com/app/mcu/201807/785910.htm

void UART3_init(void)
{
UART3_BRR2 = 0x01; // 设置波特率9600
UART3_BRR1 = 0x34; // 8M/9600 = 0x341
UART3_CR2 = 0x2C; // 允许接收中断,允许接收,允许发送
}

#pragma vector=UART3_R_RXNE_vector
__interrupt void UART3_RX_RXNE(void)
{
unsigned char c;
c = UART3_DR; // 接收到数据了
while(!UART3_SR_TXE);
c++; // 把接收到的数据加1
UART3_DR = c; // 再发回去,为什么这么做?在电脑上串口调试软件里发1就收到2,发A就收到B,看运行结果比较方便
}

void init_devices(void)
{
asm("sim"); // 关全局中断
CLK_init();
UART3_init(); // 开发板上的串口接的是UART3,刚开始想当然的认为UART1,浪费我半个小时
asm("rim"); // 开全局中断
}

void main( void )
{
init_devices();

// 主循环里没有程序需要执行
while(1);
}



              查看评论 回复



嵌入式交流网主页 > MCU > 单片机技术应用 > IAR+STM8——UART串口发送与中断接收 -
 

"IAR+STM8——UART串口发送与中断接收 -"的相关文章

网站地图

围观()