//************UART查询**************
extern void Init_check_uart()
{
rGPHCON |= 0xa0;
rGPHUP = 0x0;
rULCON0 = 0x03;
rUCON0 = 0x05;
rUFCON0 = 0x00;
rUMCON0 = 0x00;
rUBRDIV0 = 53;//PCLK=50MHz,波特率57600
dely(10);
}
extern void send_char(unsigned char c)
{
while(!(rUTRSTAT0 &0x04));
rUTXH0 = c;
}
extern void send_str(unsigned char *str)
{
int i=0;
while(str[i])
{
send_char((unsigned char) str[i++]);
}
}
//************UART中断**************
void __irq uart0_irq(void)
{
unsigned long irqOffSet;
Led_all_on();
dely(350);
Led_all_off();
dely(350);
irqOffSet = rINTOFFSET; // 取得中断号
rSUBSRCPND |= 1<<1;
rSRCPND |= 1< rINTPND |= 1<<28; // 清除中断结果
rUTXH0 = '1';
}
extern void Init_Interrupt_uart()
{
rGPHCON |= 0xa0;
rGPHUP = 0x0;
rULCON0 = 0x03;
rUCON0 = 0x05;
rUFCON0 = 0x00;
rUMCON0 = 0x00;
rUBRDIV0 = 53;//PCLK=50MHz,波特率57600
dely(100);
pISR_UART0 = (unsigned int)uart0_irq;
rINTSUBMSK &= ~(1<<1);
rINTMSK &= ~(1<<28);
rUTXH0 = '1';
dely(10);
}
关键字:S3C2440 UART 程序设计
引用地址:
S3C2440的UART程序设计
推荐阅读最新更新时间:2024-03-16 15:21
s3c2440 ads程序移植到keil中(二) 初步完成
如果我把参数配置发生改变呢 然后再一次编译 要包错误 如下所示 错误如下 这个错误解决不了 最后查看了网上网友的方法 又可以修改 但是引入了nand文件 最后反正知道了2440init.s文件要修改许多 所以我就不再这里继续整了 浪费时间 直接运用网上网友的东西即可 网友编写的地址 https://blog.csdn.net/hannibaychty/article/details/44873327 从买板子到现在,想想也有2个月啦,开始就想跑裸奔的,可是工程都是在ADS下,win7系统根本不能用,于是就想着怎么在MDK跑,可是MDK上s3c2440的启动文件是不完整的,因此不推荐使用,为此蛋疼聊好长一段时间,查了很
[单片机]
s3c2440液晶屏驱动 (内核自带) linux-4.1.24
自带有一部分驱动的配置信息,只要修改这部分就能支援 不同的液晶屏 - /arch/arm/mach-s3c24xx/mach-smdk2440.c 另一部分在 /drivers/video/fbdev/s3c2410fb.c 先打开调试功能,这样内核在启动的时候,就可以输出这些信息,或者使用 dmesg 查看到这些信息。当然,你配置内核 make menuconfig 也可以打开,但是太麻烦了,不如这样。 1 #define CONFIG_FB_S3C2410_DEBUG 2 #define dprintk(msg...) 3 do { 4 if (debug) 5 printk(msg);
[单片机]
蓝牙HCI-UART主控制接口的FPGA设计与实现
1 引言
蓝牙(Bluetooth)是世界级著名的计算机和通信领域大公司(爱立信、IBM、Intel、诺基亚和东芝等) 倡导推出的一种无线通信技术的开放式工业标准,其取自10 世纪丹麦国王哈拉尔德(HaraldBluetooth)的 别名,意在形成一个全球统一的无线通信技术标准 。蓝牙技术消除了设备之间的连线,用无线连接取代 传统的电线。蓝牙主要有蓝牙硬件和蓝牙协议组成,蓝牙硬件由模拟部分和数字部分组成。模拟部分指蓝 牙射频发射台,数字部分指主控制器。蓝牙协议采用电路及信息包两种交换方式,主要有射频(RF)、基带 (BB)、链路管理器(LM)、主接控制接口(HCI,Host Control Interface)底层嵌入
[嵌入式]
51单片机1s延时程序设计
#include sbit P1_0 = P1^0; void Delay(); // 下面引用时一定要和这里的大小写一致否则会有警告或错误 void Main() { while (1) // 开始一直循环 { P1_0 = 0; Delay(); // 没有参数也要加 () 否则会有Warning P1_0 = 1; Delay(); } } void Delay() // 12M晶振1s延时 { unsigned char h, i, j, k; for (h = 5; h 》 0; h--) for (i = 4; i 》 0; i--) for (j = 116; j 》 0; j--) for (k = 214;
[单片机]
STM8与汇编语言(11)--UART应用之三
下面这个实验程序是在上一个实验程序的基础上,将字符接收改成中断方式。每当接收到一个字符,进入中断服务程序,在中断服务程序中,从UART的接收数据寄存器中读出字符,然后通过字符发送子程序发送出去。如果与WINDOWS的超级终端相连,则键盘上按什么按键,则显示对应的字符。 同样还是利用ST的开发工具,生成一个汇编程序的框架,然后修改其中的main.asm,修改后的代码如下。要注意的是,一定要将串口的接收中断服务程序的入口地址填写中断向量表中正确的位置。 编译通过后,下载到开发板,运行程序。在PC机上运行超级终端,波特率为9600,然后从键盘上输入按键,屏幕上就显示对应的字符。 stm8/ #include map
[单片机]
s3c2440裸机-电阻触摸屏编程(4.isr设计_4.2支持长按和滑动)
1.改进定时器 五. irq之定时器中断这记一节中,是在handle_irq_c()中去区分中断源,执行不同的isr。那现在通过register_timer注册对应的定时器中断服务程序,timer_irq进行执行不同的定时器中断服务程序。 #define TIMER_NUM 32 #define NULL ((void *)0) typedef void(*timer_func)(void); typedef struct timer_desc { char *name; timer_func fp; }timer_desc, *p_timer_desc; timer_desc timer_array ; in
[单片机]
单片机C语言程序设计:TIMER0与TIMER1控制条形LED
/* 名称:TIMER0 与 TIMER1 控制条形 LED 说明:定时器 T0 定时控制上一组条形 LED,滚动速度较快 定时器 T1 定时控制下一组条形 LED,滚动速度较慢 */ #include reg51.h #include intrins.h #define uchar unsigned char #define uint unsigned int uchar tc0=0,tc1=0; //主程序 void main() { P0=0xfe; P2=0xfe; TMOD=0x11; //定时器 0、定时器1 均工作于方式 1 TH0=(65536-15000)/256; //
[单片机]
PIC单片机引脚中断程序设计技巧
所有的中档系列PIC单片机,PORTB端口最高的4个引脚(RB7~RB4)在设为输入模式时,当输入电平由高到低或由低到高发生变化时,可以让单片机产生中断。这就是通常所说的引脚状态变化中断。 在设计引脚中断程序时,有三个需要特别注意的地方。一是,在清除P0RTB中断标志位RBIF之前,必须安排一条必不可少的,以PORTB端口数据寄存器PORTB为源寄存器的读操作指令。放置这一指令的目的有时并不只是为了读取有用的数据,而是为了取消状态变化的硬件信号,以便顺利清除RBIF标志位,为下一次中断做好准备。二是,由于端口PORTB是引脚电子变化中断,即无论引脚出现上升沿还是下降沿都会产生中断请求,所以必须处理好不需要的虚假中断。三是,
[单片机]