Takin

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin  发布于  2015-04-01 19:01:44
采纳率 0%
41个问答
3097

串口接收数据,串口驱动

 
我想使用海思芯片内部串口
不知道他的串口部分如何使用
我来回答
回答4个
时间排序
认可量排序

黄金一代

0个粉丝

2

问答

0

专栏

0

资料

黄金一代 2015-04-01 19:56:22
认可0
这个芯片的处理器用户指南里面有,无非是相应的寄存器配置下波特率啥的,启用下中断等等,串口比较简单的。

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin 2015-04-02 08:59:08
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14822&ptid=7128]黄金一代 发表于 2015-4-1 19:56[/url]
这个芯片的处理器用户指南里面有,无非是相应的寄存器配置下波特率啥的,启用下中断等等,串口比较简单的。[/quote]

我理解是要改写内核的驱动,你有相应的测试OK的demo吗

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin 2015-04-07 10:43:26
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14828&ptid=7128]xjl_hi 发表于 2015-4-2 08:59[/url]
我理解是要改写内核的驱动,你有相应的测试OK的demo吗[/quote]

在网上看到别人按如下写法,
放到程序中就报错:Segmentation fault
unsigned int retu=0;
int i=0;

unsigned int UART0_ADDR = 0x20080000;


void delay_x(unsigned short cycles)
{
        unsigned short t;
        t = cycles;
        while ( --t != 0 );
}

void InitUart0()
{
        ///////////初始化部分////////////////////////////////////////////////////
                retu = *(unsigned int *)(UART0_ADDR  + 0X30);//uart_cr
                *(unsigned int *)(UART0_ADDR  + 0X30) = 0x300;
          //  retu = *(unsigned int *)(UART0_ADDR  + 0X24);//ibrd
          //  retu = *(unsigned int *)(UART0_ADDR  + 0X28);//fbrd
           *(unsigned int *)(UART0_ADDR  + 0X24) = 1;
           *(unsigned int *)(UART0_ADDR  + 0X28) = 40;
           *(unsigned int *)(UART0_ADDR  + 0X30) = 0x300;
          
           *(unsigned int *)(UART0_ADDR  + 0X2c) = 0x60;//UART_LCR_H
           *(unsigned int *)(UART0_ADDR  + 0X34) = 0x12; //UART_IFLS
           *(unsigned int *)(UART0_ADDR  + 0X38) = 0x0;//UART_IMSC
          
          
                retu = *(unsigned int *)(UART0_ADDR  + 0X30);//uart_cr
               
                *(unsigned int *)(UART0_ADDR  + 0X30) = retu | 0x01;//使能串口
        //////////////////////////////////////////////////////////          

}

Takin

1个粉丝

41

问答

0

专栏

0

资料

Takin 2015-04-07 10:44:40
认可0
[quote][url=forum.php?mod=redirect&goto=findpost&pid=14961&ptid=7128]xjl_hi 发表于 2015-4-7 10:43[/url]
在网上看到别人按如下写法,
放到程序中就报错:Segmentation fault
unsigned int retu=0;
[/quote]


输出打印语句时发现这句话就有问题
    retu = *(unsigned int *)(UART0_ADDR  + 0X30);//uart_cr
不能这么写吗?
或将文件直接拖到这里
悬赏:
E币
网盘
* 网盘链接:
* 提取码:
悬赏:
E币

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
+ 添加网盘链接/附件

Markdown 语法

  • 加粗**内容**
  • 斜体*内容*
  • 删除线~~内容~~
  • 引用> 引用内容
  • 代码`代码`
  • 代码块```编程语言↵代码```
  • 链接[链接标题](url)
  • 无序列表- 内容
  • 有序列表1. 内容
  • 缩进内容
  • 图片![alt](url)
举报反馈

举报类型

  • 内容涉黄/赌/毒
  • 内容侵权/抄袭
  • 政治相关
  • 涉嫌广告
  • 侮辱谩骂
  • 其他

详细说明

易百纳技术社区