外部IO中断还没有进展
先试了试利用Applilet实现串口通信
当我发送密码 ww 的时候 打印输出Hello!
貌似默认使用中断实现的
Applilet截图
同时我外接了一个USB转串口 和 J6 J7的3脚 相连 GND相连 实现在IAR中的串口调试
群上讨论说在发送多个字符的时候要加延时 我的没加 也能跑
主要修改代码
main函数
void main(void)
{
/* Start user code. Do not edit comment generated here */
// systeminit();
// 串口9600的波特率会影响到 SPS1 = _0004_SAU_CK00_FCLK_4 | _0040_SAU_CK01_FCLK_4;
// 例子给的GUI Demo SPS1 = _0002_SAU_CK00_FCLK_2 | _0020_SAU_CK01_FCLK_2;
// 发送和接收都是用中断方式
PORT_ChangeP77Output(0);
UART2_Start();
UART2_SendData("Please input the password!\r\n", 28);
UART2_ReceiveData(RxBuff,2);
while (1U)
{
// delay(100);
//
// UART2_SendHello();
}
/* End user code. Do not edit comment generated here */
}
UART2_ReceiveEndCallback 函数
void UART2_ReceiveEndCallback(void)
{
/* Start user code. Do not edit comment generated here */
if(RxBuff[0] == 'w' && RxBuff[1] == 'w')
UART2_SendHello();
// 重新开始接收数据
UART2_ReceiveData(RxBuff,2);
/* End user code. Do not edit comment generated here */
}
代码地址 myComTrans.rar
目前不知道如何实现查询方式
Chapter 7 How to Use the Renesas Flash Programmer Software
进行RFP下载
将Debug调试好的工程设置为Releae
针对没有输出hex文件的问题 修改工程的"Options"
在 Flash Programmer Software 中选择需要下载的hex文件
点击Start开始下载
下载成功
恩 确实是这样子的
用了release 之后 我的TK 和 EI 都没法调试了
只好用 RFP 清除flash
实现了每隔1s 采集电位器上电压 和 内部温度传感器
并通过串口发送出去
Applilet的设置和 andery88 的基本相同
先给个截图
主要代码参考了 官方的 GUI Demo Source Code
同时由于我没是吸纳printf函数 只好自己编写了用于打印整数和打印2位小数的函数
void SendUCHAR(UCHAR x);
void Send2BitFract(UCHAR x);
我用瑞萨自动生成的串口输出函数老是失败 只好自己写了个串口发送函数
// 定义一个串口发送状态的bit位
#define TSF10 (SSR10 & 0x40)
// 自己写的串口发送函数
MD_STATUS ww_UART2_SendData(UCHAR* txbuf, USHORT txnum)
{
int i =0;
MD_STATUS status = MD_OK;
if (txnum < 1U)
{
status = MD_ARGERROR;
}
else
{
STMK2 = 1U; /* disable INTST2 interrupt */
for(i = 0; i<txnum; i++)
{
while(TSF10)
{
NOP();
}
TXD2 = txbuf[i];
}
while(TSF10)
{
NOP();
}
STMK2 = 0U; /* enable INTST2 interrupt */
}
return (status);
}
主函数
void main(void)
{
/* Start user code. Do not edit comment generated here */
TAU0_Channel0_Start();
STIF2 = 0;
UART2_Start();
while (1U)
{
if(timerflag == 1)
{
timerflag = 0;
// 启动一次AD转换 内部参考电压 外部电压 温度传感器
GetVolTemp();
// 转换电压及温度
TransVolTemp();
// 通过串口发送出去 注意这次的串口波特率为19200
// 将结果转换成串口的结果发送出去
ww_UART2_SendData("Voltage: ", 9);
// 转换电压整数部分发送
SendUCHAR(extVoltage_int);
// 发送小数点
while(TSF10)
{
NOP();
}
UART2_SendData(".", 1);
// 转换电压小数部分发送
Send2BitFract(extVoltage_fract);
ww_UART2_SendData("\r\n", 2);
ww_UART2_SendData("Temp: ", 6);
// 转换温度整数部分发送 temp_int
SendUCHAR(temp_int);
// 发送小数点
while(TSF10)
{
NOP();
}
UART2_SendData(".", 1);
// 转换温度小数部分发送
Send2BitFract(temp_frac);
ww_UART2_SendData("\r\n\r\n", 4);
}
else
NOP();
}
/* End user code. Do not edit comment generated here */
}
视频还不会录
代码再修改下上传
利用了P2口 代码如下
int RunDirect = 0; // 移动方向
main函数
void main(void)
{
/* Start user code. Do not edit comment generated here */
UCHAR LEDS = 0xFE; // 先点亮一个灯
TAU0_Channel0_Start();
while (1U)
{
if(timerflag)
{
P2 = LEDS;
if(RunDirect)
{
LEDS >>= 1;
LEDS |= 0x80;
if(LEDS == 0xFF) // 0b11111111
{
LEDS = 0xFD; // 0b11111101
RunDirect = 0;
}
}
else
{
LEDS <<= 1;
LEDS |= 0x01;
if(LEDS == 0xFF) // 0b11111111
{
LEDS = 0xBF; // 0b10111111
RunDirect = 1;
}
}
timerflag = 0;
}
else
{
NOP();
}
}
/* End user code. Do not edit comment generated here */
}
代码: myRunLEDs.rar
图片等我找个相机
先传一个调试的截图
补充一句
在初始化P2口之后
要记得在main函数中加入一句话
// very important !!
ADPC = _01_ADPC_DI_ON;
否则输出电平有问题
之前没有实际调试 没发现这个这问题
传张照片
视频地址:http://union.bokecc.com/flash/single/290666218ACBA694_BEDD22B7CA18F39D_false_EEA982EE6B20F4D1_1/player.swf
回复
有奖活动 | |
---|---|
【有奖活动】分享技术经验,兑换京东卡 | |
话不多说,快进群! | |
请大声喊出:我要开发板! | |
【有奖活动】EEPW网站征稿正在进行时,欢迎踊跃投稿啦 | |
奖!发布技术笔记,技术评测贴换取您心仪的礼品 | |
打赏了!打赏了!打赏了! |
打赏帖 | |
---|---|
与电子爱好者谈读图二被打赏50分 | |
【FRDM-MCXN947评测】Core1适配运行FreeRtos被打赏50分 | |
【FRDM-MCXN947评测】双核调试被打赏50分 | |
【CPKCORRA8D1B评测】---移植CoreMark被打赏50分 | |
【CPKCORRA8D1B评测】---打开硬件定时器被打赏50分 | |
【FRDM-MCXA156评测】4、CAN loopback模式测试被打赏50分 | |
【CPKcorRA8D1评测】--搭建初始环境被打赏50分 | |
【FRDM-MCXA156评测】3、使用FlexIO模拟UART被打赏50分 | |
【FRDM-MCXA156评测】2、rt-thread MCXA156 BSP制作被打赏50分 | |
【FRDM-MCXN947评测】核间通信MUTEX被打赏50分 |