TA的每日心情 | 擦汗 2024-9-30 02:33 |
---|
签到天数: 444 天 连续签到: 1 天 [LV.9]以坛为家II
|
本帖最后由 木子鱼 于 2013-5-8 21:46 编辑
度过了7天快乐的五一 ,生活开始回归正轨。继续我的wifi小车研制,哈哈 发现越做越有动力了,因为有了志同道合的朋友的关注 {:soso_e130:}
今天下午尝试去解决在 wifi模块与A3BU板子串口通讯的问题 也就是两块单片机上的串口通讯 RMO4上面用的是什么型号的单片机看不到 商家做了保密。 但是告诉了 RXD TXD. 本想直接用 RM04上的 RXD TXD与A3BU板子的RXD TXD相连,但是纠结的是RM04底板上没有引出来,自己动手引出也不好弄,就作罢,但是RM04底板上给的资源有一个9孔的母串口 实在激了个动,就尝试去给A3BU也外接个RS232 就找来一个RS232模块 然后自己制了一个两头都是公头的D9串口线 ,这样就让RM04与A3BU串口通讯硬件链接了。
当然 RS232模块得另外供电,自制的串口线,需要用3根,TXD RXD GND .
赶紧修改了下之前的代码,让A3BU的 &USARTE0接收到字符a,就令LED灯闪亮。当然现在的A3BU的串口已经是能够接收WIFI信号的。可以用安卓手机打开网络调试助手软件,搜索连上wifi客户端,然后发送a,就可以看到效果小灯会闪亮,关闭后,小灯熄灭。
#include <asf.h>
#define USART_SERIAL &USARTD0 //&USARTD0发送 &USARTE0接收
#define USART_SERIAL_BAUDRATE 115200
#define USART_SERIAL_CHAR_LENGTH USART_CHSIZE_8BIT_gc
#define USART_SERIAL_PARITY USART_PMODE_DISABLED_gc
#define USART_SERIAL_STOP_BIT true
int main (void)
{
board_init();
sysclk_init();//调用ASF框架函数初始化时钟
delay_init(sysclk_get_cpu_hz());//调用ASF框架函数初始化delay服务
//Create USART options struct
static usart_rs232_options_t USART_SERIAL_OPTIONS = {
.baudrate = USART_SERIAL_BAUDRATE,
.charlength = USART_SERIAL_CHAR_LENGTH,
.paritytype = USART_SERIAL_PARITY,
.stopbits = USART_SERIAL_STOP_BIT };
//sysclk_enable_module(SYSCLK_PORT_D, PR_USART0_bm);//Enable the clock for the USART module
//usart_init_rs232(&USARTD0, &USART_SERIAL_OPTIONS);//Initialize in RS232 mode:
sysclk_enable_module(SYSCLK_PORT_E, PR_USART0_bm);//Enable the clock for the USART module
usart_init_rs232(&USARTE0, &USART_SERIAL_OPTIONS);//Initialize in RS232 mode:
uint8_t received_byte;//A variable for the received byte must be added:
while(1)
{
//usart_putchar(&USARTD0, 'a');//Send an 'a' character via USART
received_byte = usart_getchar(&USARTE0);//Wait for reception of a character:
//usart_putchar(&USARTE0, received_byte);//Echo the character back:
if ( received_byte=='a' )
{
gpio_set_pin_low(LED0);
delay_ms(2000); //调用ASF框架函数延时500Ms
gpio_set_pin_high(LED0);
received_byte=0;
delay_ms(2000);
}
}
}
这个是实验效果视频
|
评分
-
查看全部评分
|