博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
AT91SAM7SE应用 -- UART
阅读量:5911 次
发布时间:2019-06-19

本文共 2545 字,大约阅读时间需要 8 分钟。

最近在使用 ATMEL 的AT91SAM7SE256 来处理FPGA 输出的数据,然后再把数据发送到PC机端。

既利用了FPGA 高速数字信号处理的优势,又发挥了ARM处理器对控制类信号的简洁处理。。

 

在使用的过程中,感觉AT91SAM7SE256的资料比较少,所以在这里我把自己测试过的代码放上来,提供下载。。

开发环境如下所示: 

IDE-Version:

μVision V4.23.00.0
Copyright (C) 2011 ARM Ltd and ARM Germany GmbH. All rights reserved.

Tool Version Numbers:

Toolchain: MDK-ARM Standard Version: 4.23
Toolchain Path: D:\Keil\ARM\BIN40
C Compiler: Armcc.Exe V4.1.0.894
Assembler: Armasm.Exe V4.1.0.894
Linker/Locator: ArmLink.Exe V4.1.0.894
Librarian: ArmAr.Exe V4.1.0.894
Hex Converter: FromElf.Exe V4.1.0.894
CPU DLL: SARM.DLL V4.23
Dialog DLL: DARMATS.DLL V1.20
Target DLL: UL2ARM.DLL V1.67
Dialog DLL: TARMATS.DLL V1.20

 

下面先放上利用UART模块通过RS232接口与 PC机通信的模块。。

 

默认使用的是UART0 模块。

uart.h

View Code
#ifndef UART_H#define UART_H#include "AT91SAM7SE512.h"#include "lib_AT91SAM7SE512.h"#include "Board.h"extern  AT91PS_USART COM0;extern void uart_init (void);extern void print_str( char *buffer);extern void send_onebyte(uchar data);#endif

 

 uart.c

View Code
#include "uart.h"AT91PS_USART COM0;/****************************************************************************** * \fn    AT91F_US_Printk * \brief This function is used to send a string through the US channel ******************************************************************************/void print_str(char *buffer) // \arg pointer to a string ending by \0{    while (*buffer != '\0')    {        while (!AT91F_US_TxReady(COM0))            ;        AT91F_US_PutChar(COM0,  *buffer++);    }}void send_onebyte(uchar data){        while (!AT91F_US_TxReady(COM0))            ;        AT91F_US_PutChar(COM0, data);}/****************************************************************************** * Function Name       : Usart_init * Object              : USART initialization * Input Parameters    : none * Output Parameters   : TRUE ******************************************************************************/void uart_init(void)//* Begin{    COM0 = AT91C_BASE_US0;    //* Define RXD and TXD as peripheral    AT91F_US0_CfgPIO();    // First, enable the clock of the PIOB    AT91F_PMC_EnablePeriphClock(AT91C_BASE_PMC, 1 << AT91C_ID_US0);    // Usart Configure    //AT91F_US_Configure(COM0, MCK, AT91C_US_ASYNC_MODE, USART_BAUD_RATE, 0);    AT91F_US_Configure(COM0, MCK, AT91C_US_ASYNC_MODE, 19200, 0);    // Enable usart    COM0->US_CR = AT91C_US_RXEN | AT91C_US_TXEN;}

 

头文件AT91SAM7SE512.h为μVision V4.23.00.0自带的

头文件 lib_AT91SAM7SE512.h 为 ATMEL提供的一个库文件,里面有一些使用的函数来实现对AT91SAM7SE256 的配置。文件请到这里下载。

 

转载于:https://www.cnblogs.com/xiangtailiang/archive/2012/08/30/2663238.html

你可能感兴趣的文章
Protostar format3
查看>>
[UWP]了解模板化控件(6):使用附加属性
查看>>
我的友情链接
查看>>
PowerShell Switch判断语句示例
查看>>
《Spring实战》第四版读书笔记 第一章 Spring之旅
查看>>
那些年,一起学的Java 3-3
查看>>
那些年,一起学的Java 2-4
查看>>
Java中的多态和C#中的多态的区别
查看>>
UIView之【UIViewContentMode】
查看>>
yum 及手动编译rpm包
查看>>
使用Maven运行 MyBatis Generator
查看>>
7-设计模式-代理模式
查看>>
RedHat已更改其开源许可规则
查看>>
Android零基础入门第29节:善用TableLayout表格布局,事半功倍
查看>>
element-ui 的 table后端排序
查看>>
redis集群搭建
查看>>
linux重定向
查看>>
红包生成的模拟器2018今日头条秋招
查看>>
管道符和作业控制,shell变量和环境变量配置文件
查看>>
DirectX3D设备丢失(lost device)的处理(一)
查看>>